├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── bench ├── filebench │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── LICENSE │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── README │ ├── README_COND_COMP │ ├── aclocal.m4 │ ├── aslr.c │ ├── aslr.h │ ├── compile │ ├── config.guess │ ├── config.h │ ├── config.h.in │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── cvars │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── cvar-erlang.c │ │ ├── cvar-erlang.h │ │ ├── cvar-exponential.c │ │ ├── cvar-exponential.h │ │ ├── cvar-gamma.c │ │ ├── cvar-lognormal.c │ │ ├── cvar-lognormal.h │ │ ├── cvar-normal.c │ │ ├── cvar-normal.h │ │ ├── cvar-triangular.c │ │ ├── cvar-triangular.h │ │ ├── cvar-uniform.c │ │ ├── cvar-uniform.h │ │ ├── cvar-weibull.c │ │ ├── cvar-weibull.h │ │ ├── cvar.h │ │ ├── cvar_tokens.c │ │ ├── cvar_tokens.h │ │ ├── cvar_trace.h │ │ ├── mtwist │ │ │ ├── .dirstamp │ │ │ ├── CHANGELOG │ │ │ ├── README │ │ │ ├── mtcctest.cc │ │ │ ├── mttest.c │ │ │ ├── mtwist.3 │ │ │ ├── mtwist.c │ │ │ ├── mtwist.h │ │ │ ├── randistrs.3 │ │ │ ├── randistrs.c │ │ │ ├── randistrs.h │ │ │ ├── rdcctest.cc │ │ │ └── rdtest.c │ │ └── test │ │ │ └── sanity.c │ ├── depcomp │ ├── eventgen.c │ ├── eventgen.h │ ├── fb_avl.c │ ├── fb_avl.h │ ├── fb_cvar.c │ ├── fb_cvar.h │ ├── fb_localfs.c │ ├── fb_random.c │ ├── fb_random.h │ ├── fbtime.c │ ├── fbtime.h │ ├── filebench.h │ ├── filemicro_multi_cwdf.f │ ├── filemicro_single_cwdf.f │ ├── fileserver_back.f │ ├── fileserver_big_lvm.f │ ├── fileserver_big_mlfs.f │ ├── fileserver_big_other.f │ ├── fileserver_mlfs.f │ ├── fileserver_other.f │ ├── fileset.c │ ├── fileset.h │ ├── flag.h │ ├── flowop.c │ ├── flowop.h │ ├── flowop_library.c │ ├── fsplug.h │ ├── gamma_dist.c │ ├── gamma_dist.h │ ├── gdb_run.sh │ ├── install-sh │ ├── ioprio.c │ ├── ioprio.h │ ├── ipc.c │ ├── ipc.h │ ├── ltmain.sh │ ├── m4 │ │ ├── libtool.m4 │ │ ├── ltoptions.m4 │ │ ├── ltsugar.m4 │ │ ├── ltversion.m4 │ │ └── lt~obsolete.m4 │ ├── misc.c │ ├── misc.h │ ├── missing │ ├── mk_nova.sh │ ├── mk_pmem.sh │ ├── mk_pmfs.sh │ ├── mkfs.sh │ ├── mlfs_dummy.c │ ├── multi_client_sync.c │ ├── multi_client_sync.h │ ├── parser_gram.c │ ├── parser_gram.h │ ├── parser_gram.y │ ├── parser_lex.c │ ├── parser_lex.l │ ├── parsertypes.h │ ├── procflow.c │ ├── procflow.h │ ├── run.sh │ ├── run_filemicro_multi_cwdf.sh │ ├── run_fileserver.sh │ ├── run_multi.sh │ ├── run_varmail.sh │ ├── run_webproxy.sh │ ├── run_webserver.sh │ ├── stats.c │ ├── stats.h │ ├── threadflow.c │ ├── threadflow.h │ ├── utils.c │ ├── utils.h │ ├── varmail_dax.f │ ├── varmail_mlfs.f │ ├── varmail_other.f │ ├── vars.c │ ├── vars.h │ ├── webproxy_mlfs.f │ ├── webserver_mlfs.f │ ├── workloads │ │ ├── .cvsignore │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── compflow_demo.f │ │ ├── copyfiles.f │ │ ├── createdelete-swing.f │ │ ├── createfiles.f │ │ ├── cvar_example.f │ │ ├── filemicro_create.f │ │ ├── filemicro_createfiles.f │ │ ├── filemicro_createrand.f │ │ ├── filemicro_delete.f │ │ ├── filemicro_rread.f │ │ ├── filemicro_rwrite.f │ │ ├── filemicro_rwritedsync.f │ │ ├── filemicro_rwritefsync.f │ │ ├── filemicro_seqread.f │ │ ├── filemicro_seqwrite.f │ │ ├── filemicro_seqwriterand.f │ │ ├── filemicro_seqwriterandvargam.f │ │ ├── filemicro_seqwriterandvartab.f │ │ ├── filemicro_statfile.f │ │ ├── filemicro_writefsync.f │ │ ├── fileserver-new.f │ │ ├── fileserver.f │ │ ├── fivestreamread.f │ │ ├── fivestreamreaddirect.f │ │ ├── fivestreamwrite.f │ │ ├── fivestreamwritedirect.f │ │ ├── listdirs.f │ │ ├── makedirs.f │ │ ├── mongo.f │ │ ├── netsfs.f │ │ ├── networkfs.f │ │ ├── oltp.f │ │ ├── openfiles.f │ │ ├── randomfileaccess.f │ │ ├── randomread.f │ │ ├── randomrw.f │ │ ├── randomwrite.f │ │ ├── ratelimcopyfiles.f │ │ ├── removedirs.f │ │ ├── singlestreamread.f │ │ ├── singlestreamreaddirect.f │ │ ├── singlestreamwrite.f │ │ ├── singlestreamwritedirect.f │ │ ├── tpcso.f │ │ ├── varmail.f │ │ ├── videoserver.f │ │ ├── webproxy.f │ │ └── webserver.f │ └── ylwrap ├── leveldb │ ├── AUTHORS │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── MLFS_TEST.md │ ├── Makefile │ ├── NEWS │ ├── README.md │ ├── TODO │ ├── build_detect_platform │ ├── build_tags.sh │ ├── db │ │ ├── autocompact_test.cc │ │ ├── builder.cc │ │ ├── builder.h │ │ ├── c.cc │ │ ├── c_test.c │ │ ├── corruption_test.cc │ │ ├── db_bench.cc │ │ ├── db_impl.cc │ │ ├── db_impl.h │ │ ├── db_iter.cc │ │ ├── db_iter.h │ │ ├── db_test.cc │ │ ├── dbformat.cc │ │ ├── dbformat.h │ │ ├── dbformat_test.cc │ │ ├── dumpfile.cc │ │ ├── fault_injection_test.cc │ │ ├── filename.cc │ │ ├── filename.h │ │ ├── filename_test.cc │ │ ├── leveldbutil.cc │ │ ├── log_format.h │ │ ├── log_reader.cc │ │ ├── log_reader.h │ │ ├── log_test.cc │ │ ├── log_writer.cc │ │ ├── log_writer.h │ │ ├── memtable.cc │ │ ├── memtable.h │ │ ├── recovery_test.cc │ │ ├── repair.cc │ │ ├── skiplist.h │ │ ├── skiplist_test.cc │ │ ├── snapshot.h │ │ ├── strata_test.cc │ │ ├── table_cache.cc │ │ ├── table_cache.h │ │ ├── version_edit.cc │ │ ├── version_edit.h │ │ ├── version_edit_test.cc │ │ ├── version_set.cc │ │ ├── version_set.h │ │ ├── version_set_test.cc │ │ ├── write_batch.cc │ │ ├── write_batch_internal.h │ │ └── write_batch_test.cc │ ├── doc │ │ ├── bench │ │ │ ├── db_bench_sqlite3.cc │ │ │ └── db_bench_tree_db.cc │ │ ├── benchmark.html │ │ ├── doc.css │ │ ├── impl.html │ │ ├── index.html │ │ ├── log_format.txt │ │ └── table_format.txt │ ├── get_trace.sh │ ├── helpers │ │ └── memenv │ │ │ ├── memenv.cc │ │ │ ├── memenv.h │ │ │ └── memenv_test.cc │ ├── include │ │ └── leveldb │ │ │ ├── c.h │ │ │ ├── cache.h │ │ │ ├── comparator.h │ │ │ ├── db.h │ │ │ ├── dumpfile.h │ │ │ ├── env.h │ │ │ ├── filter_policy.h │ │ │ ├── iterator.h │ │ │ ├── options.h │ │ │ ├── slice.h │ │ │ ├── status.h │ │ │ ├── table.h │ │ │ ├── table_builder.h │ │ │ └── write_batch.h │ ├── issues │ │ ├── issue178_test.cc │ │ └── issue200_test.cc │ ├── mk_pmem.sh │ ├── mkfs.sh │ ├── port │ │ ├── README │ │ ├── atomic_pointer.h │ │ ├── port.h │ │ ├── port_example.h │ │ ├── port_posix.cc │ │ ├── port_posix.h │ │ ├── thread_annotations.h │ │ └── win │ │ │ └── stdint.h │ ├── run.sh │ ├── run_bench.sh │ ├── run_bench_ext4.sh │ ├── table │ │ ├── block.cc │ │ ├── block.h │ │ ├── block_builder.cc │ │ ├── block_builder.h │ │ ├── filter_block.cc │ │ ├── filter_block.h │ │ ├── filter_block_test.cc │ │ ├── format.cc │ │ ├── format.h │ │ ├── iterator.cc │ │ ├── iterator_wrapper.h │ │ ├── merger.cc │ │ ├── merger.h │ │ ├── table.cc │ │ ├── table_builder.cc │ │ ├── table_test.cc │ │ ├── two_level_iterator.cc │ │ └── two_level_iterator.h │ └── util │ │ ├── arena.cc │ │ ├── arena.h │ │ ├── arena_test.cc │ │ ├── bloom.cc │ │ ├── bloom_test.cc │ │ ├── cache.cc │ │ ├── cache_test.cc │ │ ├── coding.cc │ │ ├── coding.h │ │ ├── coding_test.cc │ │ ├── comparator.cc │ │ ├── crc32c.cc │ │ ├── crc32c.h │ │ ├── crc32c_test.cc │ │ ├── env.cc │ │ ├── env_posix.cc │ │ ├── env_test.cc │ │ ├── filter_policy.cc │ │ ├── hash.cc │ │ ├── hash.h │ │ ├── hash_test.cc │ │ ├── histogram.cc │ │ ├── histogram.h │ │ ├── logging.cc │ │ ├── logging.h │ │ ├── mutexlock.h │ │ ├── options.cc │ │ ├── posix_logger.h │ │ ├── random.h │ │ ├── status.cc │ │ ├── testharness.cc │ │ ├── testharness.h │ │ ├── testutil.cc │ │ └── testutil.h └── micro │ ├── Makefile │ ├── README.md │ ├── create_files.cc │ ├── dmabench.cc │ ├── dmabench.h │ ├── iobench.cc │ ├── iobench_lat.cc │ ├── run.sh │ ├── run_hotcache_lat.sh │ ├── run_iobench_tput.sh │ ├── spdk_bench.sh │ ├── thread.cc │ ├── thread.h │ ├── time_stat.c │ ├── time_stat.h │ ├── uthash.h │ ├── utlist.h │ ├── zipf-dist │ └── zipf.cc ├── deps ├── build_spdk.sh └── install_deps.sh ├── docs ├── emulation.md └── missing.md ├── kernfs ├── Makefile ├── build_tag.sh ├── concurrency ├── debug.c ├── dirent.c ├── distributed ├── ds ├── experimental ├── extents.c ├── extents.h ├── extents_bh.c ├── extents_bh.h ├── filesystem │ ├── shared.h │ ├── slru.c │ ├── slru.h │ └── stat.h ├── fs.c ├── fs.h ├── global ├── inode.c ├── io ├── kernfs_interface.h ├── lib │ └── Makefile ├── migrate.c ├── migrate.h ├── mlfs ├── mlfs_crc32.c ├── storage └── tests │ ├── .gdbinit │ ├── Makefile │ ├── extent_test.cc │ ├── fifo_cli.c │ ├── kernfs.c │ ├── mk_pmem.sh │ ├── mkfs.sh │ └── run.sh ├── libfs ├── .gitignore ├── Makefile ├── lib │ ├── Makefile │ ├── dpdk-16.11.tar.xz │ ├── jemalloc-4.5.0.tar.bz2 │ ├── liblfds7.1.0 │ │ ├── liblfds710 │ │ │ ├── inc │ │ │ │ ├── liblfds710.h │ │ │ │ └── liblfds710 │ │ │ │ │ ├── lfds710_btree_addonly_unbalanced.h │ │ │ │ │ ├── lfds710_freelist.h │ │ │ │ │ ├── lfds710_hash_addonly.h │ │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered.h │ │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered.h │ │ │ │ │ ├── lfds710_misc.h │ │ │ │ │ ├── lfds710_porting_abstraction_layer_compiler.h │ │ │ │ │ ├── lfds710_porting_abstraction_layer_operating_system.h │ │ │ │ │ ├── lfds710_porting_abstraction_layer_processor.h │ │ │ │ │ ├── lfds710_prng.h │ │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer.h │ │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer.h │ │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer.h │ │ │ │ │ ├── lfds710_ringbuffer.h │ │ │ │ │ └── lfds710_stack.h │ │ │ └── src │ │ │ │ ├── lfds710_btree_addonly_unbalanced │ │ │ │ ├── lfds710_btree_addonly_unbalanced_cleanup.c │ │ │ │ ├── lfds710_btree_addonly_unbalanced_get.c │ │ │ │ ├── lfds710_btree_addonly_unbalanced_init.c │ │ │ │ ├── lfds710_btree_addonly_unbalanced_insert.c │ │ │ │ ├── lfds710_btree_addonly_unbalanced_internal.h │ │ │ │ └── lfds710_btree_addonly_unbalanced_query.c │ │ │ │ ├── lfds710_freelist │ │ │ │ ├── lfds710_freelist_cleanup.c │ │ │ │ ├── lfds710_freelist_init.c │ │ │ │ ├── lfds710_freelist_internal.h │ │ │ │ ├── lfds710_freelist_pop.c │ │ │ │ ├── lfds710_freelist_push.c │ │ │ │ └── lfds710_freelist_query.c │ │ │ │ ├── lfds710_hash_addonly │ │ │ │ ├── lfds710_hash_addonly_cleanup.c │ │ │ │ ├── lfds710_hash_addonly_get.c │ │ │ │ ├── lfds710_hash_addonly_init.c │ │ │ │ ├── lfds710_hash_addonly_insert.c │ │ │ │ ├── lfds710_hash_addonly_internal.h │ │ │ │ ├── lfds710_hash_addonly_iterate.c │ │ │ │ └── lfds710_hash_addonly_query.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered_cleanup.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered_get.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered_init.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered_insert.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_ordered_internal.h │ │ │ │ └── lfds710_list_addonly_singlylinked_ordered_query.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered_cleanup.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered_get.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered_init.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered_insert.c │ │ │ │ ├── lfds710_list_addonly_singlylinked_unordered_internal.h │ │ │ │ └── lfds710_list_addonly_singlylinked_unordered_query.c │ │ │ │ ├── lfds710_misc │ │ │ │ ├── lfds710_misc_globals.c │ │ │ │ ├── lfds710_misc_internal.h │ │ │ │ ├── lfds710_misc_internal_backoff_init.c │ │ │ │ └── lfds710_misc_query.c │ │ │ │ ├── lfds710_prng │ │ │ │ ├── lfds710_prng_init.c │ │ │ │ └── lfds710_prng_internal.h │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer_cleanup.c │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer_dequeue.c │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer_enqueue.c │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer_init.c │ │ │ │ ├── lfds710_queue_bounded_manyproducer_manyconsumer_internal.h │ │ │ │ └── lfds710_queue_bounded_manyproducer_manyconsumer_query.c │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer_cleanup.c │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer_dequeue.c │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer_enqueue.c │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer_init.c │ │ │ │ ├── lfds710_queue_bounded_singleproducer_singleconsumer_internal.h │ │ │ │ └── lfds710_queue_bounded_singleproducer_singleconsumer_query.c │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer_cleanup.c │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer_dequeue.c │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer_enqueue.c │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer_init.c │ │ │ │ ├── lfds710_queue_unbounded_manyproducer_manyconsumer_internal.h │ │ │ │ └── lfds710_queue_unbounded_manyproducer_manyconsumer_query.c │ │ │ │ ├── lfds710_ringbuffer │ │ │ │ ├── lfds710_ringbuffer_cleanup.c │ │ │ │ ├── lfds710_ringbuffer_init.c │ │ │ │ ├── lfds710_ringbuffer_internal.h │ │ │ │ ├── lfds710_ringbuffer_query.c │ │ │ │ ├── lfds710_ringbuffer_read.c │ │ │ │ └── lfds710_ringbuffer_write.c │ │ │ │ ├── lfds710_stack │ │ │ │ ├── lfds710_stack_cleanup.c │ │ │ │ ├── lfds710_stack_init.c │ │ │ │ ├── lfds710_stack_internal.h │ │ │ │ ├── lfds710_stack_pop.c │ │ │ │ ├── lfds710_stack_push.c │ │ │ │ └── lfds710_stack_query.c │ │ │ │ └── liblfds710_internal.h │ │ └── test_and_benchmark │ │ │ ├── benchmark │ │ │ └── src │ │ │ │ ├── internal.h │ │ │ │ ├── main.c │ │ │ │ ├── misc.c │ │ │ │ ├── porting_abstraction_layer.h │ │ │ │ ├── porting_abstraction_layer_numa_free.c │ │ │ │ ├── porting_abstraction_layer_numa_malloc.c │ │ │ │ ├── porting_abstraction_layer_operating_system.h │ │ │ │ ├── util_cmdline.c │ │ │ │ └── util_cmdline.h │ │ │ ├── libbenchmark │ │ │ ├── inc │ │ │ │ ├── libbenchmark.h │ │ │ │ └── libbenchmark │ │ │ │ │ ├── libbenchmark_benchmarkinstance.h │ │ │ │ │ ├── libbenchmark_benchmarks_btree_au_readn_writen.h │ │ │ │ │ ├── libbenchmark_benchmarks_freelist_push1_then_pop1.h │ │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_enqueue1_then_dequeue1.h │ │ │ │ │ ├── libbenchmark_benchmarkset.h │ │ │ │ │ ├── libbenchmark_benchmarksuite.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_gcc_spinlock_atomic.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_gcc_spinlock_sync.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_msvc_spinlock.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_mutex.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_rwlock.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_spinlock_process_private.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_spinlock_process_shared.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_windows_critical_section.h │ │ │ │ │ ├── libbenchmark_datastructure_btree_au_windows_mutex.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_gcc_spinlock_atomic.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_gcc_spinlock_sync.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_msvc_spinlock.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_mutex.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_rwlock.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_spinlock_process_private.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_spinlock_process_shared.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_windows_critical_section.h │ │ │ │ │ ├── libbenchmark_datastructure_freelist_windows_mutex.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_gcc_spinlock_atomic.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_gcc_spinlock_sync.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_msvc_spinlock.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_mutex.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_rwlock.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_spinlock_process_private.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_spinlock_process_shared.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_windows_critical_section.h │ │ │ │ │ ├── libbenchmark_datastructure_queue_umm_windows_mutex.h │ │ │ │ │ ├── libbenchmark_enums.h │ │ │ │ │ ├── libbenchmark_gnuplot.h │ │ │ │ │ ├── libbenchmark_misc.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_gcc_spinlock_atomic.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_gcc_spinlock_sync.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_msvc_spinlock.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_pthread_mutex.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_pthread_rwlock.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_pthread_spinlock_process_private.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_pthread_spinlock_process_shared.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_windows_critical_section.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_lock_windows_mutex.h │ │ │ │ │ ├── libbenchmark_porting_abstraction_layer_operating_system.h │ │ │ │ │ ├── libbenchmark_prng.h │ │ │ │ │ ├── libbenchmark_results.h │ │ │ │ │ ├── libbenchmark_threadset.h │ │ │ │ │ ├── libbenchmark_topology.h │ │ │ │ │ └── libbenchmark_topology_node.h │ │ │ └── src │ │ │ │ ├── libbenchmark_benchmarkinstance │ │ │ │ ├── libbenchmark_benchmarkinstance_cleanup.c │ │ │ │ ├── libbenchmark_benchmarkinstance_init.c │ │ │ │ ├── libbenchmark_benchmarkinstance_internal.h │ │ │ │ └── libbenchmark_benchmarkinstance_run.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_readn_writen │ │ │ │ ├── libbenchmark_benchmarks_btree_au_gcc_spinlock_atomic_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_gcc_spinlock_sync_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_internal.h │ │ │ │ ├── libbenchmark_benchmarks_btree_au_liblfds700_lockfree_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_liblfds710_lockfree_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_msvc_spinlock_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_pthread_mutex_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_pthread_rwlock_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_pthread_spinlock_process_private_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_pthread_spinlock_process_shared_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_btree_au_windows_critical_section_readn_writen.c │ │ │ │ └── libbenchmark_benchmarks_btree_au_windows_mutex_readn_writen.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_push1_then_pop1 │ │ │ │ ├── libbenchmark_benchmarks_freelist_gcc_spinlock_atomic_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_gcc_spinlock_sync_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_internal.h │ │ │ │ ├── libbenchmark_benchmarks_freelist_liblfds700_lockfree_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_liblfds710_lockfree_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_msvc_spinlock_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_pthread_mutex_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_pthread_rwlock_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_pthread_spinlock_process_private_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_pthread_spinlock_process_shared_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_freelist_windows_critical_section_push1_then_pop1.c │ │ │ │ └── libbenchmark_benchmarks_freelist_windows_mutex_push1_then_pop1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_enqueue1_then_dequeue1 │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_gcc_spinlock_atomic_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_gcc_spinlock_sync_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_internal.h │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_liblfds700_lockfree_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_liblfds710_lockfree_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_msvc_spinlock_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_pthread_mutex_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_pthread_rwlock_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_pthread_spinlock_process_private_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_pthread_spinlock_process_shared_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarks_queue_umm_windows_critical_section_enqueue1_dequeue1.c │ │ │ │ └── libbenchmark_benchmarks_queue_umm_windows_mutex_enqueue1_dequeue1.c │ │ │ │ ├── libbenchmark_benchmarkset │ │ │ │ ├── libbenchmark_benchmarkset_add.c │ │ │ │ ├── libbenchmark_benchmarkset_cleanup.c │ │ │ │ ├── libbenchmark_benchmarkset_gnuplot.c │ │ │ │ ├── libbenchmark_benchmarkset_init.c │ │ │ │ ├── libbenchmark_benchmarkset_internal.h │ │ │ │ └── libbenchmark_benchmarkset_run.c │ │ │ │ ├── libbenchmark_benchmarksuite │ │ │ │ ├── libbenchmark_benchmarksuite_add.c │ │ │ │ ├── libbenchmark_benchmarksuite_cleanup.c │ │ │ │ ├── libbenchmark_benchmarksuite_gnuplot.c │ │ │ │ ├── libbenchmark_benchmarksuite_init.c │ │ │ │ ├── libbenchmark_benchmarksuite_internal.h │ │ │ │ └── libbenchmark_benchmarksuite_run.c │ │ │ │ ├── libbenchmark_datastructures_btree_au │ │ │ │ ├── libbenchmark_datastructure_btree_au_gcc_spinlock_atomic.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_gcc_spinlock_sync.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_internal.h │ │ │ │ ├── libbenchmark_datastructure_btree_au_msvc_spinlock.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_mutex.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_rwlock.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_spinlock_process_private.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_pthread_spinlock_process_shared.c │ │ │ │ ├── libbenchmark_datastructure_btree_au_windows_critical_section.c │ │ │ │ └── libbenchmark_datastructure_btree_au_windows_mutex.c │ │ │ │ ├── libbenchmark_datastructures_freelist │ │ │ │ ├── libbenchmark_datastructure_freelist_gcc_spinlock_atomic.c │ │ │ │ ├── libbenchmark_datastructure_freelist_gcc_spinlock_sync.c │ │ │ │ ├── libbenchmark_datastructure_freelist_internal.h │ │ │ │ ├── libbenchmark_datastructure_freelist_msvc_spinlock.c │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_mutex.c │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_rwlock.c │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_spinlock_process_private.c │ │ │ │ ├── libbenchmark_datastructure_freelist_pthread_spinlock_process_shared.c │ │ │ │ ├── libbenchmark_datastructure_freelist_windows_critical_section.c │ │ │ │ └── libbenchmark_datastructure_freelist_windows_mutex.c │ │ │ │ ├── libbenchmark_datastructures_queue_umm │ │ │ │ ├── libbenchmark_datastructure_queue_umm_gcc_spinlock_atomic.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_gcc_spinlock_sync.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_internal.h │ │ │ │ ├── libbenchmark_datastructure_queue_umm_msvc_spinlock.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_mutex.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_rwlock.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_spinlock_process_private.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_pthread_spinlock_process_shared.c │ │ │ │ ├── libbenchmark_datastructure_queue_umm_windows_critical_section.c │ │ │ │ └── libbenchmark_datastructure_queue_umm_windows_mutex.c │ │ │ │ ├── libbenchmark_internal.h │ │ │ │ ├── libbenchmark_misc │ │ │ │ ├── libbenchmark_misc_globals.c │ │ │ │ ├── libbenchmark_misc_internal.h │ │ │ │ ├── libbenchmark_misc_pal_helpers.c │ │ │ │ └── libbenchmark_misc_query.c │ │ │ │ ├── libbenchmark_porting_abstraction_layer │ │ │ │ ├── libbenchmark_porting_abstraction_layer_internal.h │ │ │ │ ├── libbenchmark_porting_abstraction_layer_populate_topology.c │ │ │ │ └── libbenchmark_porting_abstraction_layer_print_string.c │ │ │ │ ├── libbenchmark_results │ │ │ │ ├── libbenchmark_results_cleanup.c │ │ │ │ ├── libbenchmark_results_compare.c │ │ │ │ ├── libbenchmark_results_get_result.c │ │ │ │ ├── libbenchmark_results_init.c │ │ │ │ ├── libbenchmark_results_internal.h │ │ │ │ └── libbenchmark_results_put_result.c │ │ │ │ ├── libbenchmark_threadset │ │ │ │ ├── libbenchmark_threadset_cleanup.c │ │ │ │ ├── libbenchmark_threadset_init.c │ │ │ │ ├── libbenchmark_threadset_internal.h │ │ │ │ └── libbenchmark_threadset_operations.c │ │ │ │ ├── libbenchmark_topology │ │ │ │ ├── libbenchmark_topology_cleanup.c │ │ │ │ ├── libbenchmark_topology_compare.c │ │ │ │ ├── libbenchmark_topology_init.c │ │ │ │ ├── libbenchmark_topology_insert.c │ │ │ │ ├── libbenchmark_topology_internal.h │ │ │ │ ├── libbenchmark_topology_iterate.c │ │ │ │ ├── libbenchmark_topology_lpsets.c │ │ │ │ ├── libbenchmark_topology_numa.c │ │ │ │ ├── libbenchmark_topology_query.c │ │ │ │ └── libbenchmark_topology_string.c │ │ │ │ └── libbenchmark_topology_node │ │ │ │ ├── libbenchmark_topology_node_cleanup.c │ │ │ │ ├── libbenchmark_topology_node_compare.c │ │ │ │ ├── libbenchmark_topology_node_init.c │ │ │ │ └── libbenchmark_topology_node_internal.h │ │ │ ├── libshared │ │ │ ├── inc │ │ │ │ ├── libshared.h │ │ │ │ └── libshared │ │ │ │ │ ├── libshared_ansi.h │ │ │ │ │ ├── libshared_memory.h │ │ │ │ │ ├── libshared_misc.h │ │ │ │ │ ├── libshared_porting_abstraction_layer.h │ │ │ │ │ └── libshared_porting_abstraction_layer_operating_system.h │ │ │ └── src │ │ │ │ ├── libshared_ansi │ │ │ │ ├── libshared_ansi_internal.h │ │ │ │ ├── libshared_ansi_strcat.c │ │ │ │ ├── libshared_ansi_strcat_char.c │ │ │ │ ├── libshared_ansi_strcat_number.c │ │ │ │ ├── libshared_ansi_strcpy.c │ │ │ │ └── libshared_ansi_strlen.c │ │ │ │ ├── libshared_internal.h │ │ │ │ ├── libshared_memory │ │ │ │ ├── libshared_memory_add.c │ │ │ │ ├── libshared_memory_alloc.c │ │ │ │ ├── libshared_memory_cleanup.c │ │ │ │ ├── libshared_memory_init.c │ │ │ │ ├── libshared_memory_internal.h │ │ │ │ ├── libshared_memory_query.c │ │ │ │ └── libshared_memory_rollback.c │ │ │ │ ├── libshared_misc │ │ │ │ ├── libshared_misc_internal.h │ │ │ │ └── libshared_misc_query.c │ │ │ │ └── libshared_porting_abstraction_layer │ │ │ │ ├── libshared_porting_abstraction_layer_internal.h │ │ │ │ ├── libshared_porting_abstraction_layer_thread_start.c │ │ │ │ └── libshared_porting_abstraction_layer_thread_wait.c │ │ │ ├── libtest │ │ │ ├── inc │ │ │ │ ├── libtest.h │ │ │ │ └── libtest │ │ │ │ │ ├── libtest_misc.h │ │ │ │ │ ├── libtest_porting_abstraction_layer.h │ │ │ │ │ ├── libtest_porting_abstraction_layer_compiler.h │ │ │ │ │ ├── libtest_porting_abstraction_layer_operating_system.h │ │ │ │ │ ├── libtest_results.h │ │ │ │ │ ├── libtest_test.h │ │ │ │ │ ├── libtest_tests.h │ │ │ │ │ ├── libtest_testsuite.h │ │ │ │ │ └── libtest_threadset.h │ │ │ └── src │ │ │ │ ├── libtest_internal.h │ │ │ │ ├── libtest_misc │ │ │ │ ├── libtest_misc_determine_erg.c │ │ │ │ ├── libtest_misc_globals.c │ │ │ │ ├── libtest_misc_internal.h │ │ │ │ ├── libtest_misc_memory_helpers.c │ │ │ │ ├── libtest_misc_pal_helpers.c │ │ │ │ └── libtest_misc_query.c │ │ │ │ ├── libtest_porting_abstraction_layer │ │ │ │ ├── libtest_porting_abstraction_layer_free.c │ │ │ │ ├── libtest_porting_abstraction_layer_get_full_logical_processor_set.c │ │ │ │ ├── libtest_porting_abstraction_layer_internal.h │ │ │ │ └── libtest_porting_abstraction_layer_malloc.c │ │ │ │ ├── libtest_results │ │ │ │ ├── libtest_results_cleanup.c │ │ │ │ ├── libtest_results_get_result.c │ │ │ │ ├── libtest_results_init.c │ │ │ │ ├── libtest_results_internal.h │ │ │ │ └── libtest_results_put_result.c │ │ │ │ ├── libtest_test │ │ │ │ ├── libtest_test_cleanup.c │ │ │ │ ├── libtest_test_init.c │ │ │ │ ├── libtest_test_internal.h │ │ │ │ └── libtest_test_run.c │ │ │ │ ├── libtest_tests │ │ │ │ ├── libtest_tests_btree_addonly_unbalanced_alignment.c │ │ │ │ ├── libtest_tests_btree_addonly_unbalanced_random_adds_fail.c │ │ │ │ ├── libtest_tests_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c │ │ │ │ ├── libtest_tests_btree_addonly_unbalanced_random_adds_overwrite.c │ │ │ │ ├── libtest_tests_freelist_alignment.c │ │ │ │ ├── libtest_tests_freelist_ea_popping.c │ │ │ │ ├── libtest_tests_freelist_ea_popping_and_pushing.c │ │ │ │ ├── libtest_tests_freelist_ea_pushing.c │ │ │ │ ├── libtest_tests_freelist_ea_rapid_popping_and_pushing.c │ │ │ │ ├── libtest_tests_freelist_without_ea_popping.c │ │ │ │ ├── libtest_tests_freelist_without_ea_popping_and_pushing.c │ │ │ │ ├── libtest_tests_freelist_without_ea_pushing.c │ │ │ │ ├── libtest_tests_freelist_without_ea_rapid_popping_and_pushing.c │ │ │ │ ├── libtest_tests_hash_addonly_alignment.c │ │ │ │ ├── libtest_tests_hash_addonly_fail_and_overwrite.c │ │ │ │ ├── libtest_tests_hash_addonly_iterate.c │ │ │ │ ├── libtest_tests_hash_addonly_random_adds_fail.c │ │ │ │ ├── libtest_tests_hash_addonly_random_adds_overwrite.c │ │ │ │ ├── libtest_tests_internal.h │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_ordered_alignment.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_ordered_new_ordered.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_ordered_new_ordered_with_cursor.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_unordered_alignment.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_unordered_new_after.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_unordered_new_end.c │ │ │ │ ├── libtest_tests_list_addonly_singlylinked_unordered_new_start.c │ │ │ │ ├── libtest_tests_porting_abstraction_layer_atomic_add.c │ │ │ │ ├── libtest_tests_porting_abstraction_layer_atomic_cas.c │ │ │ │ ├── libtest_tests_porting_abstraction_layer_atomic_dwcas.c │ │ │ │ ├── libtest_tests_porting_abstraction_layer_atomic_exchange.c │ │ │ │ ├── libtest_tests_prng_alignment.c │ │ │ │ ├── libtest_tests_prng_generate.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_alignment.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_count.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_dequeuing.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_enqueuing.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_enqueuing_and_dequeuing.c │ │ │ │ ├── libtest_tests_queue_bounded_manyproducer_manyconsumer_rapid_enqueuing_and_dequeuing.c │ │ │ │ ├── libtest_tests_queue_bounded_singleproducer_singleconsumer_dequeuing.c │ │ │ │ ├── libtest_tests_queue_bounded_singleproducer_singleconsumer_enqueuing.c │ │ │ │ ├── libtest_tests_queue_bounded_singleproducer_singleconsumer_enqueuing_and_dequeuing.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_alignment.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_dequeuing.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_enqueuing.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_enqueuing_and_dequeuing.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_enqueuing_with_malloc_and_dequeuing_with_free.c │ │ │ │ ├── libtest_tests_queue_unbounded_manyproducer_manyconsumer_rapid_enqueuing_and_dequeuing.c │ │ │ │ ├── libtest_tests_ringbuffer_reading.c │ │ │ │ ├── libtest_tests_ringbuffer_reading_and_writing.c │ │ │ │ ├── libtest_tests_ringbuffer_writing.c │ │ │ │ ├── libtest_tests_stack_alignment.c │ │ │ │ ├── libtest_tests_stack_popping.c │ │ │ │ ├── libtest_tests_stack_popping_and_pushing.c │ │ │ │ ├── libtest_tests_stack_pushing.c │ │ │ │ └── libtest_tests_stack_rapid_popping_and_pushing.c │ │ │ │ ├── libtest_testsuite │ │ │ │ ├── libtest_testsuite_cleanup.c │ │ │ │ ├── libtest_testsuite_init.c │ │ │ │ ├── libtest_testsuite_internal.h │ │ │ │ └── libtest_testsuite_run.c │ │ │ │ └── libtest_threadset │ │ │ │ ├── libtest_threadset_add.c │ │ │ │ ├── libtest_threadset_cleanup.c │ │ │ │ ├── libtest_threadset_init.c │ │ │ │ ├── libtest_threadset_internal.h │ │ │ │ └── libtest_threadset_operations.c │ │ │ ├── test │ │ │ └── src │ │ │ │ ├── callbacks.c │ │ │ │ ├── internal.h │ │ │ │ ├── main.c │ │ │ │ ├── misc.c │ │ │ │ ├── util_cmdline.c │ │ │ │ └── util_cmdline.h │ │ │ └── what do we have here.txt │ ├── rdma-core │ │ ├── .gitignore │ │ ├── .mailmap │ │ ├── .travis.yml │ │ ├── CMakeLists.txt │ │ ├── COPYING.BSD_FB │ │ ├── COPYING.BSD_MIT │ │ ├── COPYING.GPL2 │ │ ├── COPYING.md │ │ ├── Documentation │ │ │ ├── CMakeLists.txt │ │ │ ├── ibacm.md │ │ │ ├── ibsrpdm.md │ │ │ ├── libibverbs.md │ │ │ ├── librdmacm.md │ │ │ ├── release.md │ │ │ ├── rxe.md │ │ │ ├── stable.md │ │ │ ├── tag_matching.md │ │ │ ├── udev.md │ │ │ └── versioning.md │ │ ├── MAINTAINERS │ │ ├── README.md │ │ ├── build.sh │ │ ├── buildlib │ │ │ ├── FindLDSymVer.cmake │ │ │ ├── FindSystemd.cmake │ │ │ ├── FindUDev.cmake │ │ │ ├── Findpandoc.cmake │ │ │ ├── RDMA_BuildType.cmake │ │ │ ├── RDMA_DoFixup.cmake │ │ │ ├── RDMA_EnableCStd.cmake │ │ │ ├── RDMA_Sparse.cmake │ │ │ ├── cbuild │ │ │ ├── check-build │ │ │ ├── config.h.in │ │ │ ├── const_structs.checkpatch │ │ │ ├── fixup-include │ │ │ │ ├── assert.h │ │ │ │ ├── linux-in.h │ │ │ │ ├── linux-in6.h │ │ │ │ ├── stdatomic.h │ │ │ │ ├── systemd-sd-daemon.h │ │ │ │ ├── valgrind-drd.h │ │ │ │ └── valgrind-memcheck.h │ │ │ ├── gen-sparse.py │ │ │ ├── github-release │ │ │ ├── make_abi_structs.py │ │ │ ├── package-build-test │ │ │ ├── pandoc-prebuilt.py │ │ │ ├── provider.map │ │ │ ├── publish_headers.cmake │ │ │ ├── rdma_functions.cmake │ │ │ ├── rdma_man.cmake │ │ │ ├── relpath │ │ │ ├── sparse-include │ │ │ │ ├── 19 │ │ │ │ │ └── netinet-in.h.diff │ │ │ │ ├── 23 │ │ │ │ │ ├── netinet-in.h.diff │ │ │ │ │ └── sys-socket.h.diff │ │ │ │ ├── 25 │ │ │ │ │ └── netinet-in.h.diff │ │ │ │ ├── endian.h │ │ │ │ ├── pthread.h │ │ │ │ └── stdatomic.h │ │ │ ├── travis-build │ │ │ └── travis-checkpatch │ │ ├── ccan │ │ │ ├── CMakeLists.txt │ │ │ ├── LICENSE.CCO │ │ │ ├── LICENSE.MIT │ │ │ ├── array_size.h │ │ │ ├── bitmap.c │ │ │ ├── bitmap.h │ │ │ ├── build_assert.h │ │ │ ├── check_type.h │ │ │ ├── container_of.h │ │ │ ├── list.c │ │ │ ├── list.h │ │ │ ├── minmax.h │ │ │ ├── str.c │ │ │ ├── str.h │ │ │ └── str_debug.h │ │ ├── debian │ │ │ ├── changelog │ │ │ ├── compat │ │ │ ├── control │ │ │ ├── copyright │ │ │ ├── ibacm.install │ │ │ ├── ibacm.lintian-overrides │ │ │ ├── ibverbs-providers.install │ │ │ ├── ibverbs-providers.lintian-overrides │ │ │ ├── ibverbs-providers.symbols │ │ │ ├── ibverbs-utils.install │ │ │ ├── libibumad-dev.install │ │ │ ├── libibumad3.install │ │ │ ├── libibumad3.symbols │ │ │ ├── libibverbs-dev.install │ │ │ ├── libibverbs1.install │ │ │ ├── libibverbs1.postinst │ │ │ ├── libibverbs1.symbols │ │ │ ├── librdmacm-dev.install │ │ │ ├── librdmacm1.install │ │ │ ├── librdmacm1.symbols │ │ │ ├── rdma-core.install │ │ │ ├── rdma-core.lintian-overrides │ │ │ ├── rdma-core.postinst │ │ │ ├── rdmacm-utils.install │ │ │ ├── rules │ │ │ ├── source │ │ │ │ ├── format │ │ │ │ └── lintian-overrides │ │ │ ├── srptools.default │ │ │ ├── srptools.init │ │ │ ├── srptools.install │ │ │ ├── srptools.links │ │ │ ├── srptools.lintian-overrides │ │ │ ├── srptools.postinst │ │ │ └── watch │ │ ├── ibacm │ │ │ ├── CMakeLists.txt │ │ │ ├── ibacm.init.in │ │ │ ├── ibacm.service.in │ │ │ ├── ibacm.socket │ │ │ ├── ibacm_hosts.data │ │ │ ├── include │ │ │ │ ├── acm_mad.h │ │ │ │ └── infiniband │ │ │ │ │ ├── acm.h │ │ │ │ │ └── acm_prov.h │ │ │ ├── linux │ │ │ │ └── osd.h │ │ │ ├── man │ │ │ │ ├── ib_acme.1 │ │ │ │ ├── ibacm.1 │ │ │ │ ├── ibacm.7 │ │ │ │ └── ibacm_prov.7.in │ │ │ ├── prov │ │ │ │ └── acmp │ │ │ │ │ └── src │ │ │ │ │ ├── acmp.c │ │ │ │ │ └── libibacmp.map │ │ │ └── src │ │ │ │ ├── acm.c │ │ │ │ ├── acm_util.c │ │ │ │ ├── acm_util.h │ │ │ │ ├── acme.c │ │ │ │ ├── libacm.c │ │ │ │ ├── libacm.h │ │ │ │ └── parse.c │ │ ├── iwpmd │ │ │ ├── CMakeLists.txt │ │ │ ├── iwarp_pm.h │ │ │ ├── iwarp_pm_common.c │ │ │ ├── iwarp_pm_helper.c │ │ │ ├── iwarp_pm_server.c │ │ │ ├── iwpmd.8.in │ │ │ ├── iwpmd.conf │ │ │ ├── iwpmd.conf.5.in │ │ │ ├── iwpmd.rules │ │ │ ├── iwpmd.service.in │ │ │ ├── iwpmd_init.in │ │ │ └── modules-iwpmd.conf │ │ ├── kernel-boot │ │ │ ├── CMakeLists.txt │ │ │ ├── modules │ │ │ │ ├── infiniband.conf │ │ │ │ ├── iwarp.conf │ │ │ │ ├── opa.conf │ │ │ │ ├── rdma.conf │ │ │ │ └── roce.conf │ │ │ ├── persistent-ipoib.rules │ │ │ ├── rdma-description.rules │ │ │ ├── rdma-hw-modules.rules │ │ │ ├── rdma-hw.target.in │ │ │ ├── rdma-load-modules@.service.in │ │ │ ├── rdma-ulp-modules.rules │ │ │ └── rdma-umad.rules │ │ ├── kernel-headers │ │ │ ├── CMakeLists.txt │ │ │ ├── kern-abi.c │ │ │ ├── rdma │ │ │ │ ├── bnxt_re-abi.h │ │ │ │ ├── cxgb3-abi.h │ │ │ │ ├── cxgb4-abi.h │ │ │ │ ├── hfi │ │ │ │ │ ├── hfi1_ioctl.h │ │ │ │ │ └── hfi1_user.h │ │ │ │ ├── hns-abi.h │ │ │ │ ├── i40iw-abi.h │ │ │ │ ├── ib_user_cm.h │ │ │ │ ├── ib_user_ioctl_cmds.h │ │ │ │ ├── ib_user_ioctl_verbs.h │ │ │ │ ├── ib_user_mad.h │ │ │ │ ├── ib_user_sa.h │ │ │ │ ├── ib_user_verbs.h │ │ │ │ ├── mlx4-abi.h │ │ │ │ ├── mlx5-abi.h │ │ │ │ ├── mlx5_user_ioctl_cmds.h │ │ │ │ ├── mlx5_user_ioctl_verbs.h │ │ │ │ ├── mthca-abi.h │ │ │ │ ├── nes-abi.h │ │ │ │ ├── ocrdma-abi.h │ │ │ │ ├── qedr-abi.h │ │ │ │ ├── rdma_netlink.h │ │ │ │ ├── rdma_user_cm.h │ │ │ │ ├── rdma_user_ioctl.h │ │ │ │ ├── rdma_user_ioctl_cmds.h │ │ │ │ ├── rdma_user_rxe.h │ │ │ │ └── vmw_pvrdma-abi.h │ │ │ └── update │ │ ├── libibumad │ │ │ ├── CMakeLists.txt │ │ │ ├── libibumad.map │ │ │ ├── man │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── umad_addr_dump.3 │ │ │ │ ├── umad_alloc.3 │ │ │ │ ├── umad_class_str.3 │ │ │ │ ├── umad_close_port.3 │ │ │ │ ├── umad_debug.3 │ │ │ │ ├── umad_dump.3 │ │ │ │ ├── umad_free.3 │ │ │ │ ├── umad_get_ca.3 │ │ │ │ ├── umad_get_ca_portguids.3 │ │ │ │ ├── umad_get_cas_names.3 │ │ │ │ ├── umad_get_fd.3 │ │ │ │ ├── umad_get_issm_path.3 │ │ │ │ ├── umad_get_mad.3 │ │ │ │ ├── umad_get_mad_addr.3 │ │ │ │ ├── umad_get_pkey.3 │ │ │ │ ├── umad_get_port.3 │ │ │ │ ├── umad_init.3.md │ │ │ │ ├── umad_open_port.3 │ │ │ │ ├── umad_poll.3 │ │ │ │ ├── umad_recv.3 │ │ │ │ ├── umad_register.3 │ │ │ │ ├── umad_register2.3 │ │ │ │ ├── umad_register_oui.3 │ │ │ │ ├── umad_send.3 │ │ │ │ ├── umad_set_addr.3 │ │ │ │ ├── umad_set_addr_net.3 │ │ │ │ ├── umad_set_grh.3 │ │ │ │ ├── umad_set_grh_net.3 │ │ │ │ ├── umad_set_pkey.3 │ │ │ │ ├── umad_size.3 │ │ │ │ ├── umad_status.3 │ │ │ │ └── umad_unregister.3 │ │ │ ├── sysfs.c │ │ │ ├── sysfs.h │ │ │ ├── tests │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── umad_compile_test.c │ │ │ │ ├── umad_reg2_compat.c │ │ │ │ ├── umad_register2.c │ │ │ │ └── umad_sa_mcm_rereg_test.c │ │ │ ├── umad.c │ │ │ ├── umad.h │ │ │ ├── umad_cm.h │ │ │ ├── umad_sa.h │ │ │ ├── umad_sa_mcm.h │ │ │ ├── umad_sm.h │ │ │ ├── umad_str.c │ │ │ ├── umad_str.h │ │ │ └── umad_types.h │ │ ├── libibverbs │ │ │ ├── CMakeLists.txt │ │ │ ├── arch.h │ │ │ ├── cmd.c │ │ │ ├── cmd_counters.c │ │ │ ├── cmd_cq.c │ │ │ ├── cmd_dm.c │ │ │ ├── cmd_fallback.c │ │ │ ├── cmd_flow_action.c │ │ │ ├── cmd_ioctl.c │ │ │ ├── cmd_ioctl.h │ │ │ ├── cmd_write.h │ │ │ ├── compat-1_0.c │ │ │ ├── device.c │ │ │ ├── driver.h │ │ │ ├── dummy_ops.c │ │ │ ├── enum_strs.c │ │ │ ├── examples │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── asyncwatch.c │ │ │ │ ├── device_list.c │ │ │ │ ├── devinfo.c │ │ │ │ ├── pingpong.c │ │ │ │ ├── pingpong.h │ │ │ │ ├── rc_pingpong.c │ │ │ │ ├── srq_pingpong.c │ │ │ │ ├── uc_pingpong.c │ │ │ │ ├── ud_pingpong.c │ │ │ │ └── xsrq_pingpong.c │ │ │ ├── ibverbs.h │ │ │ ├── init.c │ │ │ ├── kern-abi.h │ │ │ ├── libibverbs.map.in │ │ │ ├── man │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── ibv_alloc_dm.3 │ │ │ │ ├── ibv_alloc_mw.3 │ │ │ │ ├── ibv_alloc_null_mr.3.md │ │ │ │ ├── ibv_alloc_parent_domain.3 │ │ │ │ ├── ibv_alloc_pd.3 │ │ │ │ ├── ibv_alloc_td.3 │ │ │ │ ├── ibv_asyncwatch.1 │ │ │ │ ├── ibv_attach_counters_point_flow.3.md │ │ │ │ ├── ibv_attach_mcast.3.md │ │ │ │ ├── ibv_bind_mw.3 │ │ │ │ ├── ibv_create_ah.3 │ │ │ │ ├── ibv_create_ah_from_wc.3 │ │ │ │ ├── ibv_create_comp_channel.3 │ │ │ │ ├── ibv_create_counters.3.md │ │ │ │ ├── ibv_create_cq.3 │ │ │ │ ├── ibv_create_cq_ex.3 │ │ │ │ ├── ibv_create_flow.3 │ │ │ │ ├── ibv_create_flow_action.3.md │ │ │ │ ├── ibv_create_qp.3 │ │ │ │ ├── ibv_create_qp_ex.3 │ │ │ │ ├── ibv_create_rwq_ind_table.3 │ │ │ │ ├── ibv_create_srq.3 │ │ │ │ ├── ibv_create_srq_ex.3 │ │ │ │ ├── ibv_create_wq.3 │ │ │ │ ├── ibv_devices.1 │ │ │ │ ├── ibv_devinfo.1 │ │ │ │ ├── ibv_event_type_str.3.md │ │ │ │ ├── ibv_fork_init.3.md │ │ │ │ ├── ibv_get_async_event.3 │ │ │ │ ├── ibv_get_cq_event.3 │ │ │ │ ├── ibv_get_device_guid.3.md │ │ │ │ ├── ibv_get_device_list.3 │ │ │ │ ├── ibv_get_device_name.3.md │ │ │ │ ├── ibv_get_srq_num.3.md │ │ │ │ ├── ibv_inc_rkey.3.md │ │ │ │ ├── ibv_modify_cq.3 │ │ │ │ ├── ibv_modify_qp.3 │ │ │ │ ├── ibv_modify_qp_rate_limit.3 │ │ │ │ ├── ibv_modify_srq.3 │ │ │ │ ├── ibv_modify_wq.3 │ │ │ │ ├── ibv_open_device.3 │ │ │ │ ├── ibv_open_qp.3 │ │ │ │ ├── ibv_open_xrcd.3 │ │ │ │ ├── ibv_poll_cq.3 │ │ │ │ ├── ibv_post_recv.3 │ │ │ │ ├── ibv_post_send.3 │ │ │ │ ├── ibv_post_srq_ops.3 │ │ │ │ ├── ibv_post_srq_recv.3 │ │ │ │ ├── ibv_query_device.3 │ │ │ │ ├── ibv_query_device_ex.3 │ │ │ │ ├── ibv_query_gid.3.md │ │ │ │ ├── ibv_query_pkey.3.md │ │ │ │ ├── ibv_query_port.3 │ │ │ │ ├── ibv_query_qp.3 │ │ │ │ ├── ibv_query_rt_values_ex.3 │ │ │ │ ├── ibv_query_srq.3 │ │ │ │ ├── ibv_rate_to_mbps.3.md │ │ │ │ ├── ibv_rate_to_mult.3.md │ │ │ │ ├── ibv_rc_pingpong.1 │ │ │ │ ├── ibv_read_counters.3.md │ │ │ │ ├── ibv_reg_mr.3 │ │ │ │ ├── ibv_req_notify_cq.3.md │ │ │ │ ├── ibv_rereg_mr.3.md │ │ │ │ ├── ibv_resize_cq.3.md │ │ │ │ ├── ibv_srq_pingpong.1 │ │ │ │ ├── ibv_uc_pingpong.1 │ │ │ │ ├── ibv_ud_pingpong.1 │ │ │ │ └── ibv_xsrq_pingpong.1 │ │ │ ├── marshall.c │ │ │ ├── marshall.h │ │ │ ├── memory.c │ │ │ ├── neigh.c │ │ │ ├── neigh.h │ │ │ ├── nl1_compat.h │ │ │ ├── opcode.h │ │ │ ├── sa-kern-abi.h │ │ │ ├── sa.h │ │ │ ├── sysfs.c │ │ │ ├── tm_types.h │ │ │ ├── verbs.c │ │ │ ├── verbs.h │ │ │ └── verbs_api.h │ │ ├── librdmacm │ │ │ ├── CMakeLists.txt │ │ │ ├── acm.c │ │ │ ├── addrinfo.c │ │ │ ├── cma.c │ │ │ ├── cma.h │ │ │ ├── docs │ │ │ │ └── rsocket │ │ │ ├── examples │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cmatose.c │ │ │ │ ├── cmtime.c │ │ │ │ ├── common.c │ │ │ │ ├── common.h │ │ │ │ ├── mckey.c │ │ │ │ ├── rcopy.c │ │ │ │ ├── rdma_client.c │ │ │ │ ├── rdma_server.c │ │ │ │ ├── rdma_xclient.c │ │ │ │ ├── rdma_xserver.c │ │ │ │ ├── riostream.c │ │ │ │ ├── rping.c │ │ │ │ ├── rstream.c │ │ │ │ ├── udaddy.c │ │ │ │ └── udpong.c │ │ │ ├── ib.h │ │ │ ├── indexer.c │ │ │ ├── indexer.h │ │ │ ├── librdmacm.map │ │ │ ├── librspreload.map │ │ │ ├── man │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cmtime.1 │ │ │ │ ├── mckey.1 │ │ │ │ ├── rcopy.1 │ │ │ │ ├── rdma_accept.3 │ │ │ │ ├── rdma_ack_cm_event.3 │ │ │ │ ├── rdma_bind_addr.3 │ │ │ │ ├── rdma_client.1 │ │ │ │ ├── rdma_cm.7 │ │ │ │ ├── rdma_connect.3 │ │ │ │ ├── rdma_create_ep.3 │ │ │ │ ├── rdma_create_event_channel.3 │ │ │ │ ├── rdma_create_id.3 │ │ │ │ ├── rdma_create_qp.3 │ │ │ │ ├── rdma_create_srq.3 │ │ │ │ ├── rdma_dereg_mr.3 │ │ │ │ ├── rdma_destroy_ep.3 │ │ │ │ ├── rdma_destroy_event_channel.3 │ │ │ │ ├── rdma_destroy_id.3 │ │ │ │ ├── rdma_destroy_qp.3 │ │ │ │ ├── rdma_destroy_srq.3 │ │ │ │ ├── rdma_disconnect.3 │ │ │ │ ├── rdma_event_str.3 │ │ │ │ ├── rdma_free_devices.3 │ │ │ │ ├── rdma_get_cm_event.3 │ │ │ │ ├── rdma_get_devices.3 │ │ │ │ ├── rdma_get_dst_port.3 │ │ │ │ ├── rdma_get_local_addr.3 │ │ │ │ ├── rdma_get_peer_addr.3 │ │ │ │ ├── rdma_get_recv_comp.3 │ │ │ │ ├── rdma_get_request.3 │ │ │ │ ├── rdma_get_send_comp.3 │ │ │ │ ├── rdma_get_src_port.3 │ │ │ │ ├── rdma_getaddrinfo.3 │ │ │ │ ├── rdma_join_multicast.3 │ │ │ │ ├── rdma_join_multicast_ex.3 │ │ │ │ ├── rdma_leave_multicast.3 │ │ │ │ ├── rdma_listen.3 │ │ │ │ ├── rdma_migrate_id.3 │ │ │ │ ├── rdma_notify.3 │ │ │ │ ├── rdma_post_read.3 │ │ │ │ ├── rdma_post_readv.3 │ │ │ │ ├── rdma_post_recv.3 │ │ │ │ ├── rdma_post_recvv.3 │ │ │ │ ├── rdma_post_send.3 │ │ │ │ ├── rdma_post_sendv.3 │ │ │ │ ├── rdma_post_ud_send.3 │ │ │ │ ├── rdma_post_write.3 │ │ │ │ ├── rdma_post_writev.3 │ │ │ │ ├── rdma_reg_msgs.3 │ │ │ │ ├── rdma_reg_read.3 │ │ │ │ ├── rdma_reg_write.3 │ │ │ │ ├── rdma_reject.3 │ │ │ │ ├── rdma_resolve_addr.3 │ │ │ │ ├── rdma_resolve_route.3 │ │ │ │ ├── rdma_server.1 │ │ │ │ ├── rdma_set_option.3 │ │ │ │ ├── rdma_xclient.1 │ │ │ │ ├── rdma_xserver.1 │ │ │ │ ├── riostream.1 │ │ │ │ ├── rping.1 │ │ │ │ ├── rsocket.7.in │ │ │ │ ├── rstream.1 │ │ │ │ ├── ucmatose.1 │ │ │ │ ├── udaddy.1 │ │ │ │ └── udpong.1 │ │ │ ├── preload.c │ │ │ ├── rdma_cma.h │ │ │ ├── rdma_cma_abi.h │ │ │ ├── rdma_verbs.h │ │ │ ├── rsocket.c │ │ │ └── rsocket.h │ │ ├── providers │ │ │ ├── bnxt_re │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── bnxt_re-abi.h │ │ │ │ ├── db.c │ │ │ │ ├── flush.h │ │ │ │ ├── main.c │ │ │ │ ├── main.h │ │ │ │ ├── memory.c │ │ │ │ ├── memory.h │ │ │ │ ├── verbs.c │ │ │ │ └── verbs.h │ │ │ ├── cxgb3 │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cq.c │ │ │ │ ├── cxio_wr.h │ │ │ │ ├── firmware_exports.h │ │ │ │ ├── iwch-abi.h │ │ │ │ ├── iwch.c │ │ │ │ ├── iwch.h │ │ │ │ ├── qp.c │ │ │ │ └── verbs.c │ │ │ ├── cxgb4 │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cq.c │ │ │ │ ├── cxgb4-abi.h │ │ │ │ ├── dev.c │ │ │ │ ├── libcxgb4.h │ │ │ │ ├── qp.c │ │ │ │ ├── t4.h │ │ │ │ ├── t4_chip_type.h │ │ │ │ ├── t4_pci_id_tbl.h │ │ │ │ ├── t4_regs.h │ │ │ │ ├── t4fw_api.h │ │ │ │ ├── t4fw_ri_api.h │ │ │ │ └── verbs.c │ │ │ ├── hfi1verbs │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── hfi-abi.h │ │ │ │ ├── hfiverbs.c │ │ │ │ ├── hfiverbs.h │ │ │ │ └── verbs.c │ │ │ ├── hns │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── hns_roce_u.c │ │ │ │ ├── hns_roce_u.h │ │ │ │ ├── hns_roce_u_abi.h │ │ │ │ ├── hns_roce_u_buf.c │ │ │ │ ├── hns_roce_u_db.c │ │ │ │ ├── hns_roce_u_db.h │ │ │ │ ├── hns_roce_u_hw_v1.c │ │ │ │ ├── hns_roce_u_hw_v1.h │ │ │ │ ├── hns_roce_u_hw_v2.c │ │ │ │ ├── hns_roce_u_hw_v2.h │ │ │ │ └── hns_roce_u_verbs.c │ │ │ ├── i40iw │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── i40e_devids.h │ │ │ │ ├── i40iw-abi.h │ │ │ │ ├── i40iw_d.h │ │ │ │ ├── i40iw_osdep.h │ │ │ │ ├── i40iw_register.h │ │ │ │ ├── i40iw_status.h │ │ │ │ ├── i40iw_uk.c │ │ │ │ ├── i40iw_umain.c │ │ │ │ ├── i40iw_umain.h │ │ │ │ ├── i40iw_user.h │ │ │ │ └── i40iw_uverbs.c │ │ │ ├── ipathverbs │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── COPYING │ │ │ │ ├── dracut_check │ │ │ │ ├── dracut_install │ │ │ │ ├── dracut_kmod │ │ │ │ ├── ipath-abi.h │ │ │ │ ├── ipathverbs.c │ │ │ │ ├── ipathverbs.h │ │ │ │ ├── truescale-serdes.cmds │ │ │ │ ├── truescale.conf.in │ │ │ │ └── verbs.c │ │ │ ├── mlx4 │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── buf.c │ │ │ │ ├── cq.c │ │ │ │ ├── dbrec.c │ │ │ │ ├── libmlx4.map │ │ │ │ ├── man │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── mlx4dv.7 │ │ │ │ │ ├── mlx4dv_init_obj.3 │ │ │ │ │ └── mlx4dv_query_device.3 │ │ │ │ ├── mlx4-abi.h │ │ │ │ ├── mlx4.c │ │ │ │ ├── mlx4.conf │ │ │ │ ├── mlx4.h │ │ │ │ ├── mlx4dv.h │ │ │ │ ├── qp.c │ │ │ │ ├── srq.c │ │ │ │ └── verbs.c │ │ │ ├── mlx5 │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── bitmap.h │ │ │ │ ├── buf.c │ │ │ │ ├── cq.c │ │ │ │ ├── dbrec.c │ │ │ │ ├── libmlx5.map │ │ │ │ ├── man │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── mlx5dv.7 │ │ │ │ │ ├── mlx5dv_flow_action_esp.3.md │ │ │ │ │ ├── mlx5dv_get_clock_info.3 │ │ │ │ │ ├── mlx5dv_init_obj.3 │ │ │ │ │ ├── mlx5dv_query_device.3 │ │ │ │ │ └── mlx5dv_ts_to_ns.3 │ │ │ │ ├── mlx5-abi.h │ │ │ │ ├── mlx5.c │ │ │ │ ├── mlx5.h │ │ │ │ ├── mlx5_api.h │ │ │ │ ├── mlx5dv.h │ │ │ │ ├── qp.c │ │ │ │ ├── srq.c │ │ │ │ ├── verbs.c │ │ │ │ └── wqe.h │ │ │ ├── mthca │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── ah.c │ │ │ │ ├── buf.c │ │ │ │ ├── cq.c │ │ │ │ ├── doorbell.h │ │ │ │ ├── memfree.c │ │ │ │ ├── mthca-abi.h │ │ │ │ ├── mthca.c │ │ │ │ ├── mthca.h │ │ │ │ ├── qp.c │ │ │ │ ├── srq.c │ │ │ │ ├── verbs.c │ │ │ │ └── wqe.h │ │ │ ├── nes │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── nes-abi.h │ │ │ │ ├── nes_umain.c │ │ │ │ ├── nes_umain.h │ │ │ │ └── nes_uverbs.c │ │ │ ├── ocrdma │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Changelog │ │ │ │ ├── ocrdma_abi.h │ │ │ │ ├── ocrdma_main.c │ │ │ │ ├── ocrdma_main.h │ │ │ │ └── ocrdma_verbs.c │ │ │ ├── qedr │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── common_hsi.h │ │ │ │ ├── qelr.h │ │ │ │ ├── qelr_abi.h │ │ │ │ ├── qelr_chain.c │ │ │ │ ├── qelr_chain.h │ │ │ │ ├── qelr_hsi.h │ │ │ │ ├── qelr_hsi_rdma.h │ │ │ │ ├── qelr_main.c │ │ │ │ ├── qelr_main.h │ │ │ │ ├── qelr_verbs.c │ │ │ │ ├── qelr_verbs.h │ │ │ │ ├── rdma_common.h │ │ │ │ └── roce_common.h │ │ │ ├── rxe │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── man │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── rxe.7 │ │ │ │ │ └── rxe_cfg.8 │ │ │ │ ├── rxe-abi.h │ │ │ │ ├── rxe.c │ │ │ │ ├── rxe.h │ │ │ │ ├── rxe_cfg.in │ │ │ │ └── rxe_queue.h │ │ │ └── vmw_pvrdma │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cq.c │ │ │ │ ├── pvrdma-abi.h │ │ │ │ ├── pvrdma.h │ │ │ │ ├── pvrdma_main.c │ │ │ │ ├── pvrdma_ring.h │ │ │ │ ├── qp.c │ │ │ │ └── verbs.c │ │ ├── rdma-ndd │ │ │ ├── CMakeLists.txt │ │ │ ├── rdma-ndd.8.in │ │ │ ├── rdma-ndd.8.in.rst │ │ │ ├── rdma-ndd.c │ │ │ ├── rdma-ndd.rules │ │ │ └── rdma-ndd.service.in │ │ ├── redhat │ │ │ ├── rdma-core.spec │ │ │ ├── rdma.conf │ │ │ ├── rdma.kernel-init │ │ │ ├── rdma.mlx4-setup.sh │ │ │ ├── rdma.mlx4.conf │ │ │ ├── rdma.mlx4.sys.modprobe │ │ │ ├── rdma.modules-setup.sh │ │ │ ├── rdma.service │ │ │ ├── rdma.sriov-init │ │ │ ├── rdma.sriov-vfs │ │ │ └── rdma.udev-rules │ │ ├── srp_daemon │ │ │ ├── CMakeLists.txt │ │ │ ├── ibsrpdm.1 │ │ │ ├── modules-srp_daemon.conf │ │ │ ├── srp_daemon.1.in │ │ │ ├── srp_daemon.c │ │ │ ├── srp_daemon.conf │ │ │ ├── srp_daemon.h │ │ │ ├── srp_daemon.rules │ │ │ ├── srp_daemon.service.5 │ │ │ ├── srp_daemon.service.in │ │ │ ├── srp_daemon.sh.in │ │ │ ├── srp_daemon_port@.service.5 │ │ │ ├── srp_daemon_port@.service.in │ │ │ ├── srp_handle_traps.c │ │ │ ├── srp_ib_types.h │ │ │ ├── srp_sync.c │ │ │ ├── srpd.in │ │ │ └── start_on_all_ports │ │ ├── suse │ │ │ ├── rdma-core.spec │ │ │ ├── rdma.modules-setup.sh │ │ │ ├── rdma.sriov-rules │ │ │ └── rdma.sriov-service │ │ └── util │ │ │ ├── CMakeLists.txt │ │ │ ├── compiler.h │ │ │ ├── mmio.c │ │ │ ├── mmio.h │ │ │ ├── symver.h │ │ │ ├── udma_barrier.h │ │ │ ├── util.c │ │ │ └── util.h │ ├── rdma │ │ ├── Makefile │ │ ├── agent.c │ │ ├── agent.h │ │ ├── common.h │ │ ├── core_ch.c │ │ ├── core_ch.h │ │ ├── globals.h │ │ ├── messaging.c │ │ ├── messaging.h │ │ ├── mr.c │ │ ├── mr.h │ │ ├── rdma_ch.c │ │ ├── rdma_ch.h │ │ ├── rpc.c │ │ ├── rpc.h │ │ ├── shmem_ch.c │ │ ├── shmem_ch.h │ │ ├── tests │ │ │ ├── Makefile │ │ │ ├── master_p2p │ │ │ ├── master_p2p.c │ │ │ ├── master_passive │ │ │ ├── master_passive.c │ │ │ ├── master_sync.c │ │ │ ├── rawbench_lat │ │ │ ├── rdmabench_lat.sh │ │ │ ├── read_bw.c │ │ │ ├── read_lat.c │ │ │ ├── rpc_client │ │ │ ├── rpc_client.c │ │ │ ├── rpc_server │ │ │ ├── rpc_server.c │ │ │ ├── slave_p2p │ │ │ ├── slave_p2p.c │ │ │ ├── slave_passive.c │ │ │ ├── slave_sync │ │ │ ├── slave_sync.c │ │ │ ├── time_stat.c │ │ │ ├── time_stat.h │ │ │ ├── write_bw.c │ │ │ ├── write_lat.backup │ │ │ └── write_lat.c │ │ ├── uthash.h │ │ ├── utils.c │ │ ├── utils.h │ │ ├── verbs.c │ │ └── verbs.h │ └── spdk_developer_response.txt ├── src │ ├── build_tag.sh │ ├── concurrency │ │ ├── condvar.c │ │ ├── locks.c │ │ ├── synchronization.h │ │ ├── thpool.c │ │ ├── thpool.h │ │ ├── thread.c │ │ ├── thread.h │ │ └── timer.c │ ├── distributed │ │ ├── peer.c │ │ ├── peer.h │ │ ├── posix_wrapper.c │ │ ├── posix_wrapper.h │ │ ├── replication.c │ │ ├── replication.h │ │ ├── rpc_interface.c │ │ └── rpc_interface.h │ ├── ds │ │ ├── bitmap.c │ │ ├── bitmap.h │ │ ├── bitops.h │ │ ├── bitops_arch.h │ │ ├── bitrev.c │ │ ├── bitrev.h │ │ ├── khash.h │ │ ├── list.h │ │ ├── rbtree.c │ │ ├── rbtree.h │ │ ├── rbtree_augmented.h │ │ ├── rbtree_latch.h │ │ ├── stdatomic.h │ │ ├── utarray.h │ │ ├── uthash.h │ │ ├── xxhash.c │ │ └── xxhash.h │ ├── experimental │ │ ├── leases.c │ │ └── leases.h │ ├── filesystem │ │ ├── dirent.c │ │ ├── extents.c │ │ ├── extents.h │ │ ├── extents_bh.c │ │ ├── extents_bh.h │ │ ├── file.c │ │ ├── file.h │ │ ├── fs.c │ │ ├── fs.h │ │ ├── mlfs_crc32.c │ │ ├── shared.h │ │ ├── slru.c │ │ ├── slru.h │ │ └── stat.h │ ├── global │ │ ├── defs.h │ │ ├── fcntl.h │ │ ├── global.c │ │ ├── global.h │ │ ├── mem.h │ │ ├── ncx_core.h │ │ ├── ncx_lock.h │ │ ├── ncx_log.h │ │ ├── ncx_slab.c │ │ ├── ncx_slab.h │ │ ├── types.h │ │ ├── util.c │ │ └── util.h │ ├── io │ │ ├── balloc.c │ │ ├── balloc.h │ │ ├── block_io.c │ │ ├── block_io.h │ │ ├── buffer_head.h │ │ └── device.h │ ├── log │ │ ├── log.c │ │ └── log.h │ ├── mkfs │ │ └── mkfs.c │ ├── mlfs │ │ ├── kerncompat.h │ │ ├── mlfs_interface.h │ │ └── mlfs_user.h │ ├── posix │ │ ├── posix_interface.c │ │ └── posix_interface.h │ ├── shim │ │ └── shim.c │ └── storage │ │ ├── aio │ │ ├── async.h │ │ ├── buffer.h │ │ └── cache.h │ │ ├── storage.c │ │ ├── storage.h │ │ ├── storage_aio.cpp │ │ ├── storage_dax.c │ │ ├── storage_hdd.c │ │ ├── storage_pmem.c │ │ └── storage_ramdisk.c └── tests │ ├── .gdbinit │ ├── Makefile │ ├── append_test.c │ ├── digest_test.c │ ├── dir_test.c │ ├── enron_users.dat │ ├── falloc_test.c │ ├── file_basic.c │ ├── fork_io.cc │ ├── ftrunc_test.c │ ├── fwrite_fread.cc │ ├── iotest.cc │ ├── lease_test.cc │ ├── lock_perf.c │ ├── lock_test.c │ ├── maildir_test.c │ ├── many_files_test.cc │ ├── md5.h │ ├── mkdir_test.c │ ├── mkdir_user.c │ ├── mkfs.sh │ ├── partial_update_test.cc │ ├── perf_parse.py │ ├── rbtree_test.cc │ ├── readdir_test.c │ ├── rename.c │ ├── roaring.c │ ├── roaring.h │ ├── roaring.hh │ ├── rsync_test.c │ ├── run.sh │ ├── run_lease_test_example.sh │ ├── run_valgrind.sh │ ├── signal_test.c │ ├── slave_test.c │ ├── small_io.c │ ├── statdir_test.c │ ├── storage_dax.c │ ├── thread.cc │ ├── thread.h │ ├── time_stat.c │ ├── time_stat.h │ ├── update_test.cc │ └── userlist.dat └── utils ├── change_dev_size.py ├── connect_hd ├── disconnect_hd ├── environment ├── install_kernel ├── qemu-if.conf ├── qemu-ifdown.sh ├── qemu-ifup.sh ├── rdma_setup.sh ├── run_vm ├── sed_all_files.sh ├── uio_setup.sh └── use_dax.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore these 2 | *.img 3 | *.[oa] 4 | *.lo 5 | *.la 6 | .*.swp 7 | *.trace 8 | cscope.* 9 | GTAG* 10 | tags 11 | *.tar.gz 12 | *.tar.bz2 13 | #.gdbinit 14 | 15 | #module debris 16 | *.o.cmd 17 | *.ko.cmd 18 | *.mod.c 19 | 20 | #vim python mode debris 21 | .ropeproject 22 | 23 | #cmake tmp files 24 | CMakeFiles 25 | cmake_install.cmake 26 | CMakeCache.txt 27 | 28 | #libfs 29 | libfs/build/* 30 | libfs/bin/* 31 | libfs/lib/dpdk-16.07/* 32 | libfs/lib/nvml/* 33 | #libfs/lib/spdk/* 34 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "submodules/ndctl"] 2 | path = submodules/ndctl 3 | url = https://github.com/pmem/ndctl 4 | [submodule "submodules/nvml"] 5 | path = submodules/nvml 6 | url = https://github.com/pmem/nvml 7 | -------------------------------------------------------------------------------- /bench/filebench/AUTHORS: -------------------------------------------------------------------------------- 1 | Filebench was originally developed within SUN Microsystems by several people: 2 | 3 | Richard McDougall 4 | Neelakanth Nadgir 5 | Shawn Debnath 6 | Spencer Shepler 7 | Andrew Wilson 8 | Dominic Kay 9 | Jim Mauro 10 | Matthias Schmidt 11 | Shawn Debnath 12 | Eric Kustarz 13 | Ben Rockwood 14 | 15 | After the development has been ceased within SUN, File system and Storage Lab 16 | (FSL) at Stony Brook University got the permission to maintain and develop the 17 | benchmark further. 18 | 19 | Vasily Tarasov (vass@fsl.cs.sunysb.edu) at FSL is the person responsible 20 | for Filebench development and support. 21 | 22 | Many other people contributed code and thoughts: 23 | 24 | Santhosh Kumar 25 | Gyumin Sim 26 | Priya Sehgal 27 | -------------------------------------------------------------------------------- /bench/filebench/COPYING: -------------------------------------------------------------------------------- 1 | Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2 | Copyright 2011 File system and Storage Lab, SBU. All rights reserved. (Parts) 3 | 4 | The contents of this file are subject to the terms of the Common Development and 5 | Distribution License. See the file LICENSE in this distribution for details. 6 | -------------------------------------------------------------------------------- /bench/filebench/ChangeLog: -------------------------------------------------------------------------------- 1 | Please refer to the github project page for a complete list of changes. 2 | 3 | - Releases: https://github.com/filebench/filebench/releases 4 | - Commit history: https://github.com/filebench/filebench/commits/master 5 | -------------------------------------------------------------------------------- /bench/filebench/INSTALL: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/INSTALL -------------------------------------------------------------------------------- /bench/filebench/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/bench/filebench/LICENSE -------------------------------------------------------------------------------- /bench/filebench/aslr.h: -------------------------------------------------------------------------------- 1 | #ifndef _ASLR_H 2 | #define _ASLR_H 3 | 4 | #include 5 | 6 | #if defined(HAVE_SYS_PERSONALITY_H) && defined(HAVE_ADDR_NO_RANDOMIZE) 7 | extern void 8 | linux_disable_aslr(); 9 | 10 | static inline void 11 | disable_aslr() 12 | { 13 | return linux_disable_aslr(); 14 | } 15 | #else /* HAVE_SYS_PERSONALITY_H && HAVE_ADDR_NO_RANDOMIZE */ 16 | extern void 17 | other_disable_aslr(); 18 | 19 | static inline void 20 | disable_aslr() { 21 | return other_disable_aslr(); 22 | } 23 | #endif /* HAVE_SYS_PERSONALITY_H && HAVE_ADDR_NO_RANDOMIZE */ 24 | 25 | #endif /* _ASLR_H */ 26 | -------------------------------------------------------------------------------- /bench/filebench/compile: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/compile -------------------------------------------------------------------------------- /bench/filebench/config.guess: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/config.guess -------------------------------------------------------------------------------- /bench/filebench/config.sub: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/config.sub -------------------------------------------------------------------------------- /bench/filebench/cvars/Makefile.am: -------------------------------------------------------------------------------- 1 | libdir = $(datadir)/filebench/cvars 2 | 3 | lib_LTLIBRARIES = libcvar-erlang.la \ 4 | libcvar-exponential.la \ 5 | libcvar-lognormal.la \ 6 | libcvar-normal.la \ 7 | libcvar-triangular.la \ 8 | libcvar-uniform.la \ 9 | libcvar-weibull.la \ 10 | libcvar-gamma.la 11 | 12 | common_cvar_files = mtwist/mtwist.c mtwist/randistrs.c cvar_tokens.c 13 | 14 | libcvar_erlang_la_SOURCES = cvar-erlang.c $(common_cvar_files) 15 | libcvar_exponential_la_SOURCES = cvar-exponential.c $(common_cvar_files) 16 | libcvar_lognormal_la_SOURCES = cvar-lognormal.c $(common_cvar_files) 17 | libcvar_normal_la_SOURCES = cvar-normal.c $(common_cvar_files) 18 | libcvar_triangular_la_SOURCES = cvar-triangular.c $(common_cvar_files) 19 | libcvar_uniform_la_SOURCES = cvar-uniform.c $(common_cvar_files) 20 | libcvar_weibull_la_SOURCES = cvar-weibull.c $(common_cvar_files) 21 | libcvar_gamma_la_SOURCES = cvar-gamma.c $(common_cvar_files) 22 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-erlang.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-erlang.h 3 | * 4 | * Custom variable that returns random numbers following the Erlang 5 | * distribution. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_ERLANG_H 11 | #define _RAND_ERLANG_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RER_SHAPE "shape" 17 | #define RER_RATE "rate" 18 | 19 | /* Parameter defaults. */ 20 | #define RER_SHAPE_DEFAULT 1 21 | #define RER_RATE_DEFAULT 1.0 22 | 23 | #define VERSION "0.1.1 (alpha)" 24 | 25 | /* The handle that will be returned to Filebench. */ 26 | typedef struct handle { 27 | mt_state state; 28 | int shape; 29 | double rate; 30 | } handle_t; 31 | 32 | /* Static buffer to hold the usage string */ 33 | #define USAGE_LEN 2048 34 | 35 | char usage[USAGE_LEN + 1] = {0}; 36 | 37 | #endif /* _RAND_ERLANG_H */ 38 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-exponential.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-exponential.h 3 | * 4 | * Custom variable implementation that returns exponentially distributed random 5 | * numbers. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_EXPONENTIAL_H 11 | #define _RAND_EXPONENTIAL_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RE_MEAN "mean" 17 | 18 | /* Parameter defaults. */ 19 | #define RE_MEAN_DEFAULT 1.0 20 | 21 | #define VERSION "0.1.1 (alpha)" 22 | 23 | /* The handle that will be returned to Filebench. */ 24 | typedef struct handle { 25 | mt_state state; 26 | double mean; 27 | } handle_t; 28 | 29 | /* Static buffer to hold the usage string */ 30 | #define USAGE_LEN 2048 31 | 32 | char usage[USAGE_LEN + 1] = {0}; 33 | 34 | #endif /* _RAND_EXPONENTIAL_H */ 35 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-lognormal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-lognormal.h 3 | * 4 | * Custom variable implementation that returns Log-Normally distributed random 5 | * numbers. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_LOGNORMAL_H 11 | #define _RAND_LOGNORMAL_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RLN_SHAPE "shape" 17 | #define RLN_SCALE "scale" 18 | 19 | /* Parameter defaults. */ 20 | #define RLN_SHAPE_DEFAULT 1.0 21 | #define RLN_SCALE_DEFAULT 1.0 22 | 23 | #define VERSION "0.1.1 (alpha)" 24 | 25 | /* The handle that will be returned to Filebench. */ 26 | typedef struct handle { 27 | mt_state state; 28 | double shape; 29 | double scale; 30 | } handle_t; 31 | 32 | /* Static buffer to hold the usage string */ 33 | #define USAGE_LEN 2048 34 | 35 | char usage[USAGE_LEN + 1] = {0}; 36 | 37 | #endif /* _RAND_NORMAL_H */ 38 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-normal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-normal.h 3 | * 4 | * Custom variable that returns Normally distributed random numbers. 5 | * 6 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 7 | */ 8 | 9 | #ifndef _RAND_NORMAL_H 10 | #define _RAND_NORMAL_H 11 | 12 | #include "mtwist/mtwist.h" 13 | 14 | /* Parameters recognized by this variable. */ 15 | #define RN_MEAN "mean" 16 | #define RN_SIGMA "sigma" 17 | 18 | /* Parameter defaults. */ 19 | #define RN_MEAN_DEFAULT 0.0 20 | #define RN_SIGMA_DEFAULT 1.0 21 | 22 | #define VERSION "0.1.1 (alpha)" 23 | 24 | /* The handle that will be returned to Filebench. */ 25 | typedef struct handle { 26 | mt_state state; 27 | double mean; 28 | double sigma; 29 | } handle_t; 30 | 31 | /* Static buffer to hold the usage string */ 32 | #define USAGE_LEN 2048 33 | 34 | char usage[USAGE_LEN + 1] = {0}; 35 | 36 | #endif /* _RAND_NORMAL_H */ 37 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-triangular.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-triangular.h 3 | * 4 | * Custom variable implementation that returns random numbers following a 5 | * Triangular distribution. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_TRIANGULAR_H 11 | #define _RAND_TRIANGULAR_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RT_LOWER "lower" 17 | #define RT_UPPER "upper" 18 | #define RT_MODE "mode" 19 | 20 | /* Parameter defaults. */ 21 | #define RT_LOWER_DEFAULT 0.0 22 | #define RT_UPPER_DEFAULT 1.0 23 | #define RT_MODE_DEFAULT 0.5 24 | 25 | #define VERSION "0.1.1 (alpha)" 26 | 27 | /* The handle that will be returned to Filebench. */ 28 | typedef struct handle { 29 | mt_state state; 30 | double lower; 31 | double upper; 32 | double mode; 33 | } handle_t; 34 | 35 | /* Static buffer to hold the usage string */ 36 | #define USAGE_LEN 2048 37 | 38 | char usage[USAGE_LEN + 1] = {0}; 39 | 40 | #endif /* _RAND_TRIANGULAR_H */ 41 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-uniform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-uniform.h 3 | * 4 | * Custom variable implementation that generates uniformly distributed random 5 | * numbers. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_UNIFORM_H 11 | #define _RAND_UNIFORM_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RU_LOWER "lower" 17 | #define RU_UPPER "upper" 18 | 19 | /* Parameter defaults. */ 20 | #define RU_LOWER_DEFAULT 0.0 21 | #define RU_UPPER_DEFAULT 1.0 22 | 23 | #define VERSION "0.1.1 (alpha)" 24 | 25 | /* The handle that will be returned to Filebench. */ 26 | typedef struct handle { 27 | mt_state state; 28 | double lower; 29 | double upper; 30 | } handle_t; 31 | 32 | /* Static buffer to hold the usage string */ 33 | #define USAGE_LEN 2048 34 | 35 | char usage[USAGE_LEN + 1] = {0}; 36 | 37 | #endif /* _RAND_UNIFORM_H */ 38 | -------------------------------------------------------------------------------- /bench/filebench/cvars/cvar-weibull.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rand-weibull.h 3 | * 4 | * Custom variable implementation that returns random numbers following the 5 | * Weibull distribution. 6 | * 7 | * Author: Santhosh Kumar Koundinya (santhosh@fsl.cs.sunysb.edu) 8 | */ 9 | 10 | #ifndef _RAND_WEIBULL_H 11 | #define _RAND_WEIBULL_H 12 | 13 | #include "mtwist/mtwist.h" 14 | 15 | /* Parameters recognized by this variable. */ 16 | #define RW_SHAPE "shape" 17 | #define RW_SCALE "scale" 18 | 19 | /* Parameter defaults. */ 20 | #define RW_SHAPE_DEFAULT 1.0 21 | #define RW_SCALE_DEFAULT 1.0 22 | 23 | #define VERSION "0.1.1 (alpha)" 24 | 25 | /* The handle that will be returned to Filebench. */ 26 | typedef struct handle { 27 | mt_state state; 28 | double shape; 29 | double scale; 30 | } handle_t; 31 | 32 | /* Static buffer to hold the usage string */ 33 | #define USAGE_LEN 2048 34 | 35 | char usage[USAGE_LEN + 1] = {0}; 36 | 37 | #endif /* _RAND_WEIBULL_H */ 38 | -------------------------------------------------------------------------------- /bench/filebench/cvars/mtwist/.dirstamp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/bench/filebench/cvars/mtwist/.dirstamp -------------------------------------------------------------------------------- /bench/filebench/depcomp: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/depcomp -------------------------------------------------------------------------------- /bench/filebench/fbtime.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "fbtime.h" 5 | #include "config.h" 6 | #include "filebench.h" 7 | 8 | /* 9 | * If we don't have gethrtime() function provided by the environment (which is 10 | * usually provided only by Solaris) then we use gettimeofdate(). 11 | */ 12 | 13 | #ifndef HAVE_GETHRTIME 14 | hrtime_t 15 | gethrtime(void) 16 | { 17 | struct timeval tv; 18 | hrtime_t hrt; 19 | 20 | gettimeofday(&tv, NULL); 21 | 22 | hrt = (hrtime_t)tv.tv_sec * 1000000000UL + 23 | (hrtime_t)tv.tv_usec * 1000UL; 24 | 25 | return hrt; 26 | } 27 | #endif /* HAVE_GETHRTIME */ 28 | -------------------------------------------------------------------------------- /bench/filebench/fbtime.h: -------------------------------------------------------------------------------- 1 | #ifndef _FBTIME_H 2 | #define _FBTIME_H 3 | 4 | #include "config.h" 5 | 6 | #ifdef HAVE_STDINT_H 7 | #include 8 | #endif 9 | 10 | #ifndef HAVE_GETHRTIME 11 | typedef uint64_t hrtime_t; 12 | hrtime_t gethrtime(void); 13 | #endif 14 | 15 | #define SEC2NS_FLOAT (double)1000000000.0 16 | #define SEC2MS_FLOAT (double)1000000.0 17 | 18 | #endif /* _FBTIME_H*/ 19 | -------------------------------------------------------------------------------- /bench/filebench/flag.h: -------------------------------------------------------------------------------- 1 | #ifndef _FB_FLAG_H 2 | #define _FB_FLAG_H 3 | 4 | typedef volatile int flag_t; 5 | 6 | static inline void clear_flag(flag_t *flag) 7 | { 8 | *flag = 0; 9 | } 10 | 11 | static inline void set_flag(flag_t *flag) 12 | { 13 | *flag = 1; 14 | } 15 | 16 | static inline int query_flag(flag_t *flag) 17 | { 18 | return (*flag) != 0; 19 | } 20 | 21 | static inline void wait_flag(flag_t *flag) 22 | { 23 | while (!query_flag(flag)) 24 | ; /* Do nothing */ 25 | } 26 | 27 | #endif /* _FB_FLAG_H */ 28 | 29 | -------------------------------------------------------------------------------- /bench/filebench/gdb_run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | sudo cgdb -p `pgrep filebench | tail -n 1` 4 | -------------------------------------------------------------------------------- /bench/filebench/install-sh: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/install-sh -------------------------------------------------------------------------------- /bench/filebench/ioprio.h: -------------------------------------------------------------------------------- 1 | #ifndef _FB_IOPRIO_H 2 | #define _FB_IOPRIO_H 3 | 4 | #ifdef HAVE_IOPRIO 5 | #include 6 | extern void set_thread_ioprio(threadflow_t *); 7 | #else 8 | static inline void set_thread_ioprio(threadflow_t *tf) 9 | { 10 | return; 11 | } 12 | #endif 13 | 14 | #endif /* _FB_IOPRIO_H */ 15 | -------------------------------------------------------------------------------- /bench/filebench/ltmain.sh: -------------------------------------------------------------------------------- 1 | /usr/share/libtool/build-aux/ltmain.sh -------------------------------------------------------------------------------- /bench/filebench/m4/libtool.m4: -------------------------------------------------------------------------------- 1 | /usr/share/aclocal/libtool.m4 -------------------------------------------------------------------------------- /bench/filebench/m4/ltoptions.m4: -------------------------------------------------------------------------------- 1 | /usr/share/aclocal/ltoptions.m4 -------------------------------------------------------------------------------- /bench/filebench/m4/ltsugar.m4: -------------------------------------------------------------------------------- 1 | /usr/share/aclocal/ltsugar.m4 -------------------------------------------------------------------------------- /bench/filebench/m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | /usr/share/aclocal/ltversion.m4 -------------------------------------------------------------------------------- /bench/filebench/m4/lt~obsolete.m4: -------------------------------------------------------------------------------- 1 | /usr/share/aclocal/lt~obsolete.m4 -------------------------------------------------------------------------------- /bench/filebench/missing: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/missing -------------------------------------------------------------------------------- /bench/filebench/mk_nova.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | user=$(whoami) 4 | 5 | mkdir -p ./pmem 6 | sudo mount -t NOVA -o init /dev/pmem0 ./pmem 7 | sudo chown $user ./pmem 8 | -------------------------------------------------------------------------------- /bench/filebench/mk_pmem.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | user=$(whoami) 4 | 5 | sudo mkfs.ext4 /dev/pmem0 6 | mkdir -p ./pmem 7 | sudo mount -t ext4 -o dax /dev/pmem0 ./pmem 8 | sudo chown $user ./pmem 9 | 10 | -------------------------------------------------------------------------------- /bench/filebench/mk_pmfs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | user=$(whoami) 4 | 5 | mkdir -p ./pmem 6 | sudo mount -t pmfs -o init /dev/pmem0 ./pmem 7 | sudo chown $user ./pmem 8 | -------------------------------------------------------------------------------- /bench/filebench/mkfs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | SRC_ROOT=../../ 5 | export LD_LIBRARY_PATH=$SRC_ROOT/libfs/lib/nvml/src/nondebug/:$SRC_ROOT/libfs/build:$SRC_ROOT/shim/glibc-build/rt/:/usr/local/lib/:/usr/lib/x86_64-linux-gnu/:/lib/x86_64-linux-gnu/ 6 | 7 | $SRC_ROOT/libfs/bin/mkfs.mlfs $@ 8 | -------------------------------------------------------------------------------- /bench/filebench/mlfs_dummy.c: -------------------------------------------------------------------------------- 1 | void init_fs(void) { 2 | return ; 3 | } 4 | 5 | void init_fs_with_mem(unsigned long memsize) { 6 | return ; 7 | } 8 | 9 | void shutdown_fs(void) { 10 | return ; 11 | } 12 | 13 | void __attribute__((weak)) make_digest_request_sync(int nr_digest) 14 | { 15 | return ; 16 | } 17 | 18 | int make_digest_request_async(int percent) 19 | { 20 | return 0; 21 | } 22 | 23 | void wait_on_digesting(void) 24 | { 25 | return ; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /bench/filebench/run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | SRC_ROOT=../../ 5 | #export LD_LIBRARY_PATH=$SRC_ROOT/libfs/lib/nvml/src/nondebug/:$SRC_ROOT/libfs/build:$SRC_ROOT/shim/glibc-build/rt/ 6 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 MLFS_DEBUG=1 $@ 7 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 MLFS_PROFILE=1 taskset -c 0,7 $@ 8 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 taskset -c 0,1 $@ 9 | LD_PRELOAD=$SRC_ROOT/libfs/build/libmlfs.so MLFS=1 MLFS_DISABLE_INIT=1 taskset -c 0,1 $@ 10 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so:../../deps/mutrace/.libs/libmutrace.so MUTRACE_HASH_SIZE=2000000 MLFS=1 taskset -c 0,7 $@ 11 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 $@ 12 | -------------------------------------------------------------------------------- /bench/filebench/run_filemicro_multi_cwdf.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | FB_FILE="filemicro_multi_cwdf.f" 4 | 5 | sed -i "s/\(eventrate *= *\).*/\1$1/" $FB_FILE 6 | sed -i "s/\(meanappendsize *= *\).*/\1$2/" $FB_FILE 7 | #sed -i "s/\(iters *= *\).*/\1$3/" $FB_FILE 8 | 9 | rm -rf results/FM_$1\_$2\_$3\_$4.out 10 | #rm -rf results/bw.tmp 11 | 12 | #collectl -sx -i 10 -c 3 > results/bw.tmp & 13 | 14 | ./run_multi.sh ./filebench.mlfs -f $FB_FILE > results/FM_$1\_$2\_$3\_$4.out 15 | 16 | #sleep 2 17 | 18 | #cat results/bw.tmp >> results/FM_$1\_$2\_$3.out 19 | 20 | #./run.sh strace -ff ./filebench.mlfs -f varmail_mlfs.f 2> a.strace 21 | -------------------------------------------------------------------------------- /bench/filebench/run_fileserver.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf a.strace 4 | #./run.sh ./filebench.mlfs -f fileserver_big_mlfs.f 5 | ./run.sh ./filebench.mlfs -f fileserver_mlfs.f 6 | #./run.sh strace -ff ./filebench.mlfs -f varmail_mlfs.f 2> a.strace 7 | -------------------------------------------------------------------------------- /bench/filebench/run_multi.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | SRC_ROOT=../../ 5 | export LD_LIBRARY_PATH=$SRC_ROOT/libfs/lib/nvml/src/nondebug/:$SRC_ROOT/libfs/build:$SRC_ROOT/shim/glibc-build/rt/ 6 | 7 | #KILLALL='sudo pkill -f multiclient' 8 | 9 | function cleanup() { 10 | echo "** Filebench processes killed. Exiting..."; 11 | pkill -P $$ 12 | #$KILLALL 13 | } 14 | 15 | trap "cleanup" 2 16 | 17 | trap "cleanup" EXIT 18 | 19 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 MLFS_DEBUG=1 $@ 20 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 MLFS_PROFILE=1 taskset -c 0,7 $@ 21 | LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 MLFS_PROFILE=1 taskset -c 0,2,4,6,7 $@ 22 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so:../../deps/mutrace/.libs/libmutrace.so MUTRACE_HASH_SIZE=2000000 MLFS=1 taskset -c 0,7 $@ 23 | #LD_PRELOAD=$SRC_ROOT/shim/libshim/libshim.so MLFS=1 $@ 24 | 25 | cleanup 26 | -------------------------------------------------------------------------------- /bench/filebench/run_varmail.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf a.strace 4 | ./run.sh ./filebench.mlfs -f varmail_mlfs.f 5 | #./run.sh strace -ff ./filebench.mlfs -f varmail_mlfs.f 2> a.strace 6 | -------------------------------------------------------------------------------- /bench/filebench/run_webproxy.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf a.strace 4 | ./run.sh ./filebench.mlfs -f webproxy_mlfs.f 5 | #./run.sh strace -ff ./filebench.mlfs -f varmail_mlfs.f 2> a.strace 6 | -------------------------------------------------------------------------------- /bench/filebench/run_webserver.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf a.strace 4 | ./run.sh ./filebench.mlfs -f webserver_mlfs.f 5 | #./run.sh strace -ff ./filebench.mlfs -f varmail_mlfs.f 2> a.strace 6 | -------------------------------------------------------------------------------- /bench/filebench/workloads/.cvsignore: -------------------------------------------------------------------------------- 1 | Makefile.in 2 | Makefile 3 | -------------------------------------------------------------------------------- /bench/filebench/workloads/cvar_example.f: -------------------------------------------------------------------------------- 1 | set $dir=/tmp 2 | set $filesize=100m 3 | set $iosize=cvar(type=cvar-uniform,parameters=lower:4096;upper:8192) 4 | 5 | define file name=singlefile,path=$dir,size=$filesize,prealloc 6 | 7 | define process name=filereader,instances=1 8 | { 9 | thread name=filereader,memsize=1m,instances=1 10 | { 11 | flowop openfile name=open1,filesetname=singlefile,fd=1 12 | flowop read name=read1,fd=1,iosize=$iosize 13 | flowop closefile name=close1,fd=1 14 | } 15 | } 16 | 17 | run 60 18 | -------------------------------------------------------------------------------- /bench/filebench/ylwrap: -------------------------------------------------------------------------------- 1 | /usr/share/automake-1.15/ylwrap -------------------------------------------------------------------------------- /bench/leveldb/AUTHORS: -------------------------------------------------------------------------------- 1 | # Names should be added to this file like so: 2 | # Name or Organization 3 | 4 | Google Inc. 5 | 6 | # Initial version authors: 7 | Jeffrey Dean 8 | Sanjay Ghemawat 9 | 10 | # Partial list of contributors: 11 | Kevin Regan 12 | Johan Bilien 13 | -------------------------------------------------------------------------------- /bench/leveldb/MLFS_TEST.md: -------------------------------------------------------------------------------- 1 | ## list of testings. 2 | 3 | ALL tests are passed. 4 | - DB IO related. 5 | DB_test : 49 subtests 6 | corruption_test: 12 subtests 7 | Autocompaction_test: 2 subtests. 8 | Recovery_test: 12 subtests 9 | Fault injection test: 2 subtests 10 | log_test: 38 subtests 11 | 12 | ------------------------------------------ 13 | - MISC 14 | arean_test: 2 subtests 15 | bloom_test: 3 subtests 16 | cache_test: 8 subtests 17 | coding_test: 10 subtests 18 | crc32_test: 4 subtests 19 | c_test : 16 subtests 20 | ebv_test: 3 subtests 21 | filename_test: 2 subtests 22 | filterblock_test: 3 subtests 23 | hash_test: 1 subtests 24 | issue178_test :1 subtest 25 | issue200_test: 1 subtest 26 | memenv_test: 6 subtests 27 | skiplist_test: 8 subtests 28 | table_test: 11 subtests 29 | version_edit_test: 1 subtests 30 | version_set_test: 6 subtests 31 | -------------------------------------------------------------------------------- /bench/leveldb/NEWS: -------------------------------------------------------------------------------- 1 | Release 1.2 2011-05-16 2 | ---------------------- 3 | 4 | Fixes for larger databases (tested up to one billion 100-byte entries, 5 | i.e., ~100GB). 6 | 7 | (1) Place hard limit on number of level-0 files. This fixes errors 8 | of the form "too many open files". 9 | 10 | (2) Fixed memtable management. Before the fix, a heavy write burst 11 | could cause unbounded memory usage. 12 | 13 | A fix for a logging bug where the reader would incorrectly complain 14 | about corruption. 15 | 16 | Allow public access to WriteBatch contents so that users can easily 17 | wrap a DB. 18 | -------------------------------------------------------------------------------- /bench/leveldb/TODO: -------------------------------------------------------------------------------- 1 | ss 2 | - Stats 3 | 4 | db 5 | - Maybe implement DB::BulkDeleteForRange(start_key, end_key) 6 | that would blow away files whose ranges are entirely contained 7 | within [start_key..end_key]? For Chrome, deletion of obsolete 8 | object stores, etc. can be done in the background anyway, so 9 | probably not that important. 10 | - There have been requests for MultiGet. 11 | 12 | After a range is completely deleted, what gets rid of the 13 | corresponding files if we do no future changes to that range. Make 14 | the conditions for triggering compactions fire in more situations? 15 | -------------------------------------------------------------------------------- /bench/leveldb/build_tags.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ 4 | mk_cscope 5 | cscope -bR 6 | -------------------------------------------------------------------------------- /bench/leveldb/db/db_iter.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #ifndef STORAGE_LEVELDB_DB_DB_ITER_H_ 6 | #define STORAGE_LEVELDB_DB_DB_ITER_H_ 7 | 8 | #include 9 | #include "leveldb/db.h" 10 | #include "db/dbformat.h" 11 | 12 | namespace leveldb { 13 | 14 | class DBImpl; 15 | 16 | // Return a new iterator that converts internal keys (yielded by 17 | // "*internal_iter") that were live at the specified "sequence" number 18 | // into appropriate user keys. 19 | extern Iterator* NewDBIterator( 20 | DBImpl* db, 21 | const Comparator* user_key_comparator, 22 | Iterator* internal_iter, 23 | SequenceNumber sequence, 24 | uint32_t seed); 25 | 26 | } // namespace leveldb 27 | 28 | #endif // STORAGE_LEVELDB_DB_DB_ITER_H_ 29 | -------------------------------------------------------------------------------- /bench/leveldb/db/log_format.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | // 5 | // Log format information shared by reader and writer. 6 | // See ../doc/log_format.txt for more detail. 7 | 8 | #ifndef STORAGE_LEVELDB_DB_LOG_FORMAT_H_ 9 | #define STORAGE_LEVELDB_DB_LOG_FORMAT_H_ 10 | 11 | namespace leveldb { 12 | namespace log { 13 | 14 | enum RecordType { 15 | // Zero is reserved for preallocated files 16 | kZeroType = 0, 17 | 18 | kFullType = 1, 19 | 20 | // For fragments 21 | kFirstType = 2, 22 | kMiddleType = 3, 23 | kLastType = 4 24 | }; 25 | static const int kMaxRecordType = kLastType; 26 | 27 | static const int kBlockSize = 32768; 28 | 29 | // Header is checksum (4 bytes), length (2 bytes), type (1 byte). 30 | static const int kHeaderSize = 4 + 2 + 1; 31 | 32 | } // namespace log 33 | } // namespace leveldb 34 | 35 | #endif // STORAGE_LEVELDB_DB_LOG_FORMAT_H_ 36 | -------------------------------------------------------------------------------- /bench/leveldb/get_trace.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf a.trace 4 | grep -v 'write(1' f.trace > a.trace 5 | -------------------------------------------------------------------------------- /bench/leveldb/helpers/memenv/memenv.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #ifndef STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 6 | #define STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 7 | 8 | namespace leveldb { 9 | 10 | class Env; 11 | 12 | // Returns a new environment that stores its data in memory and delegates 13 | // all non-file-storage tasks to base_env. The caller must delete the result 14 | // when it is no longer needed. 15 | // *base_env must remain live while the result is in use. 16 | Env* NewMemEnv(Env* base_env); 17 | 18 | } // namespace leveldb 19 | 20 | #endif // STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 21 | -------------------------------------------------------------------------------- /bench/leveldb/include/leveldb/dumpfile.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #ifndef STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ 6 | #define STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ 7 | 8 | #include 9 | #include "leveldb/env.h" 10 | #include "leveldb/status.h" 11 | 12 | namespace leveldb { 13 | 14 | // Dump the contents of the file named by fname in text format to 15 | // *dst. Makes a sequence of dst->Append() calls; each call is passed 16 | // the newline-terminated text corresponding to a single item found 17 | // in the file. 18 | // 19 | // Returns a non-OK result if fname does not name a leveldb storage 20 | // file, or if the file cannot be read. 21 | Status DumpFile(Env* env, const std::string& fname, WritableFile* dst); 22 | 23 | } // namespace leveldb 24 | 25 | #endif // STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ 26 | -------------------------------------------------------------------------------- /bench/leveldb/mk_pmem.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | user=$(whoami) 4 | 5 | SRC_ROOT=. 6 | 7 | sudo mkfs.ext4 /dev/pmem0 8 | sudo mount -t ext4 -o dax /dev/pmem0 $SRC_ROOT/pmem 9 | sudo chown $user $SRC_ROOT/pmem 10 | -------------------------------------------------------------------------------- /bench/leveldb/mkfs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | SRC_ROOT=../../../ 5 | export LD_LIBRARY_PATH=$SRC_ROOT/libfs/lib/nvml/src/nondebug/:$SRC_ROOT/libfs/build:$SRC_ROOT/shim/glibc-build/rt/:/usr/local/lib/:/usr/lib/x86_64-linux-gnu/:/lib/x86_64-linux-gnu/ 6 | 7 | $SRC_ROOT/libfs/bin/mkfs.mlfs $@ 8 | -------------------------------------------------------------------------------- /bench/leveldb/port/README: -------------------------------------------------------------------------------- 1 | This directory contains interfaces and implementations that isolate the 2 | rest of the package from platform details. 3 | 4 | Code in the rest of the package includes "port.h" from this directory. 5 | "port.h" in turn includes a platform specific "port_.h" file 6 | that provides the platform specific implementation. 7 | 8 | See port_posix.h for an example of what must be provided in a platform 9 | specific header file. 10 | 11 | -------------------------------------------------------------------------------- /bench/leveldb/port/port.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #ifndef STORAGE_LEVELDB_PORT_PORT_H_ 6 | #define STORAGE_LEVELDB_PORT_PORT_H_ 7 | 8 | #include 9 | 10 | // Include the appropriate platform specific file below. If you are 11 | // porting to a new platform, see "port_example.h" for documentation 12 | // of what the new port_.h file must provide. 13 | #if defined(LEVELDB_PLATFORM_POSIX) 14 | # include "port/port_posix.h" 15 | #elif defined(LEVELDB_PLATFORM_CHROMIUM) 16 | # include "port/port_chromium.h" 17 | #endif 18 | 19 | #endif // STORAGE_LEVELDB_PORT_PORT_H_ 20 | -------------------------------------------------------------------------------- /bench/leveldb/port/win/stdint.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | // MSVC didn't ship with this file until the 2010 version. 6 | 7 | #ifndef STORAGE_LEVELDB_PORT_WIN_STDINT_H_ 8 | #define STORAGE_LEVELDB_PORT_WIN_STDINT_H_ 9 | 10 | #if !defined(_MSC_VER) 11 | #error This file should only be included when compiling with MSVC. 12 | #endif 13 | 14 | // Define C99 equivalent types. 15 | typedef signed char int8_t; 16 | typedef signed short int16_t; 17 | typedef signed int int32_t; 18 | typedef signed long long int64_t; 19 | typedef unsigned char uint8_t; 20 | typedef unsigned short uint16_t; 21 | typedef unsigned int uint32_t; 22 | typedef unsigned long long uint64_t; 23 | 24 | #endif // STORAGE_LEVELDB_PORT_WIN_STDINT_H_ 25 | -------------------------------------------------------------------------------- /bench/leveldb/run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | PROJECT_ROOT=../../.. 5 | 6 | LD_PRELOAD=$PROJECT_ROOT/libfs/build/libmlfs.so ${@} 7 | -------------------------------------------------------------------------------- /bench/leveldb/run_bench.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | #benchmark=fillseq 4 | #benchmark=readrandom 5 | 6 | 7 | function show_usage() { 8 | echo "./run_bench.sh " 9 | echo "workload types: readseq, randrandom, readhot, fillseq, fillrandom, fillsync" 10 | exit 11 | } 12 | 13 | if [ $# -eq 0 ] 14 | then 15 | show_usage 16 | fi 17 | 18 | WORKLOAD="" 19 | 20 | if [[ "$1" == *read* ]]; then 21 | WORKLOAD="fillseq," 22 | fi 23 | 24 | WORKLOAD+=$1 25 | 26 | #./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=fillseq,readseq 27 | #./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=fillseq,fillrandom,readseq,readrandom,readhot 28 | #./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=fillseq,readhot 29 | #./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=fillseq 30 | ./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=$WORKLOAD 31 | #./run.sh ./db_bench.mlfs --db=/mlfs --num=400000 --value_size=1024 --benchmarks=fillsync 32 | 33 | -------------------------------------------------------------------------------- /bench/leveldb/run_bench_ext4.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | ./db_bench --db=./pmem --num=300000 --value_size=1024 4 | #./db_bench --db=./pmem --num=30000 --value_size=4096 5 | -------------------------------------------------------------------------------- /bench/leveldb/table/merger.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #ifndef STORAGE_LEVELDB_TABLE_MERGER_H_ 6 | #define STORAGE_LEVELDB_TABLE_MERGER_H_ 7 | 8 | namespace leveldb { 9 | 10 | class Comparator; 11 | class Iterator; 12 | 13 | // Return an iterator that provided the union of the data in 14 | // children[0,n-1]. Takes ownership of the child iterators and 15 | // will delete them when the result iterator is deleted. 16 | // 17 | // The result does no duplicate suppression. I.e., if a particular 18 | // key is present in K child iterators, it will be yielded K times. 19 | // 20 | // REQUIRES: n >= 0 21 | extern Iterator* NewMergingIterator( 22 | const Comparator* comparator, Iterator** children, int n); 23 | 24 | } // namespace leveldb 25 | 26 | #endif // STORAGE_LEVELDB_TABLE_MERGER_H_ 27 | -------------------------------------------------------------------------------- /bench/leveldb/util/filter_policy.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #include "leveldb/filter_policy.h" 6 | 7 | namespace leveldb { 8 | 9 | FilterPolicy::~FilterPolicy() { } 10 | 11 | } // namespace leveldb 12 | -------------------------------------------------------------------------------- /bench/leveldb/util/hash.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | // 5 | // Simple hash function used for internal data structures 6 | 7 | #ifndef STORAGE_LEVELDB_UTIL_HASH_H_ 8 | #define STORAGE_LEVELDB_UTIL_HASH_H_ 9 | 10 | #include 11 | #include 12 | 13 | namespace leveldb { 14 | 15 | extern uint32_t Hash(const char* data, size_t n, uint32_t seed); 16 | 17 | } 18 | 19 | #endif // STORAGE_LEVELDB_UTIL_HASH_H_ 20 | -------------------------------------------------------------------------------- /bench/leveldb/util/options.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. See the AUTHORS file for names of contributors. 4 | 5 | #include "leveldb/options.h" 6 | 7 | #include "leveldb/comparator.h" 8 | #include "leveldb/env.h" 9 | 10 | namespace leveldb { 11 | 12 | Options::Options() 13 | : comparator(BytewiseComparator()), 14 | create_if_missing(false), 15 | error_if_exists(false), 16 | paranoid_checks(false), 17 | env(Env::Default()), 18 | info_log(NULL), 19 | write_buffer_size(4<<20), 20 | max_open_files(1000), 21 | block_cache(NULL), 22 | block_size(4096), 23 | block_restart_interval(16), 24 | compression(kSnappyCompression), 25 | reuse_logs(false), 26 | filter_policy(NULL) { 27 | } 28 | 29 | } // namespace leveldb 30 | -------------------------------------------------------------------------------- /bench/micro/run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | PROJECT_ROOT=../.. 5 | 6 | LD_PRELOAD=$PROJECT_ROOT/libfs/build/libmlfs.so ${@} 7 | -------------------------------------------------------------------------------- /bench/micro/run_hotcache_lat.sh: -------------------------------------------------------------------------------- 1 | 2 | #! /bin/bash 3 | 4 | sudo MLFS_DIGSET_TH=100 ./run.sh iobench_lat wr 256M 4K 1 5 | 6 | -------------------------------------------------------------------------------- /bench/micro/spdk_bench.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MODES="sw rw" 4 | BSIZES="4K 64K 1M 16M" 5 | TOTAL_SIZES="512M 2G" 6 | 7 | for mode in $MODES; do 8 | for block in $BSIZES; do 9 | for size in $TOTAL_SIZES; do 10 | output_file="results/spdk_"$mode"_"$size"_"$block".txt" 11 | echo Running $output_file 12 | sudo ./write_read.normal $mode spdk aa $size $block | tee $output_file 13 | sleep 1 14 | done 15 | done 16 | done 17 | -------------------------------------------------------------------------------- /bench/micro/time_stat.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | struct time_stats { 10 | #if 0 11 | struct timeval time_start; 12 | #else 13 | struct timespec time_start; 14 | #endif 15 | int n, count; 16 | double* time_v; 17 | }; 18 | 19 | void time_stats_init(struct time_stats*, int); 20 | void time_stats_start(struct time_stats*); 21 | void time_stats_stop(struct time_stats*); 22 | void time_stats_print(struct time_stats*, char*); 23 | double time_stats_get_avg(struct time_stats*); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | -------------------------------------------------------------------------------- /deps/build_spdk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Building spdk.." 4 | cd ../kernfs/lib/; make; cd ../../deps 5 | 6 | -------------------------------------------------------------------------------- /deps/install_deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$(uname -a | grep Ubuntu)" ]; then 4 | # apt update 5 | #sudo apt update 6 | 7 | echo "Installing required packages.." 8 | sudo apt-get install -y build-essential make pkg-config autoconf cmake gcc libcapstone-dev 9 | sudo apt-get install -y libudev-dev libnl-3-dev libnl-route-3-dev ninja-build pkg-config valgrind 10 | sudo apt-get install -y libnuma-dev libaio1 libaio-dev uuid-dev librdmacm-dev numactl ndctl 11 | sudo apt-get install -y libncurses-dev libssl-dev libelf-dev rsync libndctl-dev libdaxctl-dev 12 | 13 | else 14 | echo "Non-Ubuntu OS detected. You may need to install required packages manually (refer to dependencies in README).\n" 15 | fi 16 | 17 | echo "Building dependent Assise libraries (RDMA-CORE, NVML, JEMALLOC, syscall-intercept).." 18 | cd ../libfs/lib; sudo make; cd ../../deps 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/missing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/docs/missing.md -------------------------------------------------------------------------------- /kernfs/build_tag.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf tags cscope.* 4 | 5 | ctags -R . 6 | 7 | PWD=`pwd`\/; 8 | #find -L `pwd` \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' -o -name '*.java' -o -name '*.jl' -o -name '*.py' \) -exec realpath {} \; -print > tmp.files 9 | #cat tmp.files | grep -v libfs > cscope.files 10 | #rm -rf tmp.files 11 | cscope -bR 12 | -------------------------------------------------------------------------------- /kernfs/concurrency: -------------------------------------------------------------------------------- 1 | ../libfs/src/concurrency/ -------------------------------------------------------------------------------- /kernfs/debug.c: -------------------------------------------------------------------------------- 1 | #include "io/block_io.h" 2 | 3 | void dbg_ssd_dump(addr_t blockno) 4 | { 5 | struct buffer_head *bh; 6 | uint8_t tmp_buf[4096]; 7 | bh = bh_get_sync_IO(g_ssd_dev, blockno, BH_NO_DATA_ALLOC); 8 | 9 | bh->b_data = tmp_buf; 10 | bh->b_size = g_block_size_bytes; 11 | bh_submit_read_sync_IO(bh); 12 | mlfs_io_wait(bh->b_dev, 1); 13 | 14 | GDB_TRAP; 15 | 16 | bh_release(bh); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /kernfs/dirent.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/kernfs/dirent.c -------------------------------------------------------------------------------- /kernfs/distributed: -------------------------------------------------------------------------------- 1 | ../libfs/src/distributed/ -------------------------------------------------------------------------------- /kernfs/ds: -------------------------------------------------------------------------------- 1 | ../libfs/src/ds -------------------------------------------------------------------------------- /kernfs/experimental: -------------------------------------------------------------------------------- 1 | ../libfs/src/experimental -------------------------------------------------------------------------------- /kernfs/extents_bh.h: -------------------------------------------------------------------------------- 1 | #ifndef _EXTENTS_BH_H 2 | #define _EXTENTS_BH_H 3 | 4 | #include "mlfs/kerncompat.h" 5 | #include "io/block_io.h" 6 | #include "extents.h" 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | void fs_start_trans(struct super_block *sb); 13 | void fs_stop_trans(struct super_block *sb); 14 | 15 | struct buffer_head *fs_bread(uint8_t dev_id, mlfs_fsblk_t block, int *ret); 16 | void fs_brelse(struct buffer_head *bh); 17 | struct buffer_head *fs_get_bh(uint8_t dev_id, mlfs_fsblk_t block, int *ret); 18 | 19 | void fs_mark_buffer_dirty(struct buffer_head *bh); 20 | void fs_bforget(struct buffer_head *bh); 21 | void fs_bh_showstat(void); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /kernfs/filesystem/shared.h: -------------------------------------------------------------------------------- 1 | ../../libfs/src/filesystem/shared.h -------------------------------------------------------------------------------- /kernfs/filesystem/stat.h: -------------------------------------------------------------------------------- 1 | ../../libfs/src/filesystem/stat.h -------------------------------------------------------------------------------- /kernfs/global: -------------------------------------------------------------------------------- 1 | ../libfs/src/global/ -------------------------------------------------------------------------------- /kernfs/io: -------------------------------------------------------------------------------- 1 | ../libfs/src/io -------------------------------------------------------------------------------- /kernfs/kernfs_interface.h: -------------------------------------------------------------------------------- 1 | #ifndef _KERN_FS_INTERFACE_ 2 | #define _KERN_FS_INTERFACE_ 3 | 4 | void init_fs(void); 5 | 6 | void shutdown_fs(void); 7 | #endif 8 | -------------------------------------------------------------------------------- /kernfs/lib/Makefile: -------------------------------------------------------------------------------- 1 | 2 | .PHONY: all download redownload clean 3 | all: download 4 | #make install -C dpdk-$(DPDK_VER) T=x86_64-native-linuxapp-gcc DESTDIR=dpdk-$(DPDK_VER)/ -j8 5 | (cd spdk && \ 6 | git submodule update --init && \ 7 | sudo ./scripts/pkgdep.sh && \ 8 | ./configure && \ 9 | make -j8) 10 | 11 | download: 12 | ######## 13 | # SPDK 14 | ######## 15 | if [ ! -d "spdk" ] || [ ! -z $(REPO_PURGE) ]; then\ 16 | rm -rf spdk;\ 17 | git clone https://github.com/spdk/spdk.git;\ 18 | fi 19 | 20 | redownload: REPO_PURGE=1 21 | redownload: download 22 | 23 | clean: 24 | make clean -C spdk 25 | -------------------------------------------------------------------------------- /kernfs/mlfs: -------------------------------------------------------------------------------- 1 | ../libfs/src/mlfs/ -------------------------------------------------------------------------------- /kernfs/storage: -------------------------------------------------------------------------------- 1 | ../libfs/src/storage/ -------------------------------------------------------------------------------- /kernfs/tests/.gdbinit: -------------------------------------------------------------------------------- 1 | define load_sl 2 | sharedlibrary libshim.so 3 | end 4 | 5 | #set environment LD_PRELOAD ../../shim/libshim/libshim.so 6 | set environment LD_LIBRARY_PATH ../build:../../libfs/lib/libspdk/libspdk/:../../libfs/lib/nvml/src/nondebug/:../../libfs/build/ 7 | 8 | # loading python modules. 9 | source ../../gdb_python_modules/load_modules.py 10 | 11 | define setbr 12 | l digest_directory 13 | b 396 if dirent_inum == 28 14 | l digest_replay_and_optimize 15 | b 946 if inum == 28 16 | end 17 | 18 | # this is macro to setup for breakpoint 19 | define setup_br_tmp 20 | b 60 21 | # run programe 22 | r w aa 40K 23 | 24 | l add_to_log 25 | b 541 if $caller_is("posix_write", 8) 26 | #b balloc if $caller_is("posix_write", 8) 27 | end 28 | -------------------------------------------------------------------------------- /kernfs/tests/fifo_cli.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #define MAX_FIFO_BUF 4096 8 | #define fifo_path "/tmp/digest_fifo" 9 | 10 | int main() 11 | { 12 | int fd; 13 | char buf[MAX_FIFO_BUF]; 14 | 15 | memset(buf, 0, MAX_FIFO_BUF); 16 | 17 | sprintf(buf, "Message from client\n"); 18 | /* open, read, and display the message from the FIFO */ 19 | fd = open(fifo_path, O_WRONLY); 20 | write(fd, buf, MAX_FIFO_BUF); 21 | 22 | close(fd); 23 | 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /kernfs/tests/kernfs.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "kernfs_interface.h" 3 | 4 | int main(void) 5 | { 6 | printf("initialize file system\n"); 7 | 8 | init_fs(); 9 | 10 | shutdown_fs(); 11 | } 12 | -------------------------------------------------------------------------------- /kernfs/tests/mk_pmem.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | user=$(whoami) 4 | pmem_root=./../pmem_storage/ 5 | 6 | sudo mkfs.ext4 /dev/pmem0 7 | mkdir -p ./pmem 8 | sudo mount -t ext4 -o dax /dev/pmem0 $pmem_root 9 | sudo chown -R $user $pmem_root 10 | -------------------------------------------------------------------------------- /kernfs/tests/mkfs.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/sudo /bin/bash 2 | 3 | numactl -N0 -m0 ../../libfs/bin/mkfs.mlfs 1 4 | #numactl -N0 -m0 ../../libfs/bin/mkfs.mlfs 2 5 | #numactl -N0 -m0 ../../libfs/bin/mkfs.mlfs 3 6 | #numactl -N0 -m0 ../../libfs/bin/mkfs.mlfs 4 7 | #numactl -N1 -m1 ../../libfs/bin/mkfs.mlfs 5 8 | -------------------------------------------------------------------------------- /libfs/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | bin/ 3 | lib/dpdk-16.07/x86_64-native-linuxapp-gcc 4 | -------------------------------------------------------------------------------- /libfs/lib/dpdk-16.11.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/dpdk-16.11.tar.xz -------------------------------------------------------------------------------- /libfs/lib/jemalloc-4.5.0.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/jemalloc-4.5.0.tar.bz2 -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_btree_addonly_unbalanced/lfds710_btree_addonly_unbalanced_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library-wide header file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** enums *****/ 5 | enum lfds710_btree_au_move 6 | { 7 | LFDS710_BTREE_AU_MOVE_INVALID, 8 | LFDS710_BTREE_AU_MOVE_SMALLEST_FROM_RIGHT_CHILD, 9 | LFDS710_BTREE_AU_MOVE_LARGEST_FROM_LEFT_CHILD, 10 | LFDS710_BTREE_AU_MOVE_GET_PARENT, 11 | LFDS710_BTREE_AU_MOVE_MOVE_UP_TREE 12 | }; 13 | 14 | enum lfds710_btree_au_delete_action 15 | { 16 | LFDS710_BTREE_AU_DELETE_SELF, 17 | LFDS710_BTREE_AU_DELETE_SELF_REPLACE_WITH_LEFT_CHILD, 18 | LFDS710_BTREE_AU_DELETE_SELF_REPLACE_WITH_RIGHT_CHILD, 19 | LFDS710_BTREE_AU_DELETE_MOVE_LEFT 20 | }; 21 | 22 | /***** private prototypes *****/ 23 | 24 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_freelist/lfds710_freelist_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_freelist_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void lfds710_freelist_cleanup( struct lfds710_freelist_state *fs, 10 | void (*element_cleanup_callback)(struct lfds710_freelist_state *fs, struct lfds710_freelist_element *fe) ) 11 | { 12 | struct lfds710_freelist_element 13 | *fe, 14 | *fe_temp; 15 | 16 | LFDS710_PAL_ASSERT( fs != NULL ); 17 | // TRD : element_cleanup_callback can be NULL 18 | 19 | LFDS710_MISC_BARRIER_LOAD; 20 | 21 | if( element_cleanup_callback != NULL ) 22 | { 23 | fe = fs->top[POINTER]; 24 | 25 | while( fe != NULL ) 26 | { 27 | fe_temp = fe; 28 | fe = fe->next; 29 | 30 | element_cleanup_callback( fs, fe_temp ); 31 | } 32 | } 33 | 34 | return; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_freelist/lfds710_freelist_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | void lfds710_freelist_internal_push_without_ea( struct lfds710_freelist_state *fs, 6 | struct lfds710_freelist_element *fe ); 7 | 8 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_hash_addonly/lfds710_hash_addonly_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_list_addonly_singlylinked_ordered/lfds710_list_addonly_singlylinked_ordered_get.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_list_addonly_singlylinked_ordered_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | int lfds710_list_aso_get_by_key( struct lfds710_list_aso_state *lasos, 10 | void *key, 11 | struct lfds710_list_aso_element **lasoe ) 12 | { 13 | int 14 | cr = !0, 15 | rv = 1; 16 | 17 | LFDS710_PAL_ASSERT( lasos != NULL ); 18 | // TRD : key can be NULL 19 | LFDS710_PAL_ASSERT( lasoe != NULL ); 20 | 21 | while( cr != 0 and LFDS710_LIST_ASO_GET_START_AND_THEN_NEXT(*lasos, *lasoe) ) 22 | cr = lasos->key_compare_function( key, (*lasoe)->key ); 23 | 24 | if( *lasoe == NULL ) 25 | rv = 0; 26 | 27 | return rv; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_list_addonly_singlylinked_ordered/lfds710_list_addonly_singlylinked_ordered_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_list_addonly_singlylinked_unordered/lfds710_list_addonly_singlylinked_unordered_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_misc/lfds710_misc_globals.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_misc_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | struct lfds710_misc_globals 10 | lfds710_misc_globals = 11 | { 12 | { LFDS710_PRNG_SEED } 13 | }; 14 | 15 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_misc/lfds710_misc_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | void lfds710_misc_prng_internal_big_slow_high_quality_init( int long long unsigned seed ); 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_misc/lfds710_misc_internal_backoff_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_misc_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void lfds710_misc_internal_backoff_init( struct lfds710_misc_backoff_state *bs ) 10 | { 11 | LFDS710_PAL_ASSERT( bs != NULL ); 12 | LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) &bs->lock % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 ); 13 | 14 | bs->lock = LFDS710_MISC_FLAG_LOWERED; 15 | bs->backoff_iteration_frequency_counters[0] = 0; 16 | bs->backoff_iteration_frequency_counters[1] = 0; 17 | bs->metric = 1; 18 | bs->total_operations = 0; 19 | 20 | return; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_prng/lfds710_prng_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_queue_bounded_manyproducer_manyconsumer/lfds710_queue_bounded_manyproducer_manyconsumer_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_queue_bounded_manyproducer_manyconsumer_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void lfds710_queue_bmm_cleanup( struct lfds710_queue_bmm_state *qbmms, 10 | void (*element_cleanup_callback)(struct lfds710_queue_bmm_state *qbmms, void *key, void *value) ) 11 | { 12 | void 13 | *key, 14 | *value; 15 | 16 | LFDS710_PAL_ASSERT( qbmms != NULL ); 17 | // TRD : element_cleanup_callback can be NULL 18 | 19 | LFDS710_MISC_BARRIER_LOAD; 20 | 21 | if( element_cleanup_callback != NULL ) 22 | while( lfds710_queue_bmm_dequeue(qbmms,&key,&value) ) 23 | element_cleanup_callback( qbmms, key, value ); 24 | 25 | return; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_queue_bounded_manyproducer_manyconsumer/lfds710_queue_bounded_manyproducer_manyconsumer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_queue_bounded_singleproducer_singleconsumer/lfds710_queue_bounded_singleproducer_singleconsumer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_queue_unbounded_manyproducer_manyconsumer/lfds710_queue_unbounded_manyproducer_manyconsumer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** enums *****/ 5 | enum lfds710_queue_umm_queue_state 6 | { 7 | LFDS710_QUEUE_UMM_QUEUE_STATE_UNKNOWN, 8 | LFDS710_QUEUE_UMM_QUEUE_STATE_EMPTY, 9 | LFDS710_QUEUE_UMM_QUEUE_STATE_ENQUEUE_OUT_OF_PLACE, 10 | LFDS710_QUEUE_UMM_QUEUE_STATE_ATTEMPT_DEQUEUE 11 | }; 12 | 13 | /***** private prototypes *****/ 14 | 15 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_ringbuffer/lfds710_ringbuffer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_stack/lfds710_stack_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_stack_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void lfds710_stack_cleanup( struct lfds710_stack_state *ss, 10 | void (*element_cleanup_callback)(struct lfds710_stack_state *ss, struct lfds710_stack_element *se) ) 11 | { 12 | struct lfds710_stack_element 13 | *se, 14 | *se_temp; 15 | 16 | LFDS710_PAL_ASSERT( ss != NULL ); 17 | // TRD : element_cleanup_callback can be NULL 18 | 19 | LFDS710_MISC_BARRIER_LOAD; 20 | 21 | if( element_cleanup_callback != NULL ) 22 | { 23 | se = ss->top[POINTER]; 24 | 25 | while( se != NULL ) 26 | { 27 | se_temp = se; 28 | se = se->next; 29 | 30 | element_cleanup_callback( ss, se_temp ); 31 | } 32 | } 33 | 34 | return; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_stack/lfds710_stack_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "lfds710_stack_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void lfds710_stack_init_valid_on_current_logical_core( struct lfds710_stack_state *ss, 10 | void *user_state ) 11 | { 12 | LFDS710_PAL_ASSERT( ss != NULL ); 13 | LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) ss->top % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 ); 14 | LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) &ss->user_state % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 ); 15 | // TRD : user_state can be NULL 16 | 17 | ss->top[POINTER] = NULL; 18 | ss->top[COUNTER] = 0; 19 | 20 | ss->user_state = user_state; 21 | 22 | lfds710_misc_internal_backoff_init( &ss->pop_backoff ); 23 | lfds710_misc_internal_backoff_init( &ss->push_backoff ); 24 | 25 | LFDS710_MISC_BARRIER_STORE; 26 | 27 | lfds710_misc_force_store(); 28 | 29 | return; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/liblfds710/src/lfds710_stack/lfds710_stack_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../liblfds710_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/benchmark/src/porting_abstraction_layer.h: -------------------------------------------------------------------------------- 1 | /***** defines *****/ 2 | #define BENCHMARK_MEMORY_TYPE_SMP 1 3 | #define BENCHMARK_MEMORY_TYPE_NUMA 2 4 | 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/inc/libbenchmark/libbenchmark_porting_abstraction_layer.h: -------------------------------------------------------------------------------- 1 | /***** defines *****/ 2 | #if( !defined NULL ) 3 | #define NULL (void *) 0 4 | #endif 5 | 6 | #if( defined __GNUC__ ) 7 | // TRD : makes checking GCC versions much tidier 8 | #define LIBLFDS_GCC_VERSION ( __GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ ) 9 | #endif 10 | 11 | /***** structs *****/ 12 | 13 | /***** public prototypes *****/ 14 | int libbenchmark_porting_abstraction_layer_populate_topology( struct libbenchmark_topology_state *ts, struct libshared_memory_state *ms ); 15 | void libbenchmark_porting_abstraction_layer_topology_node_cleanup( struct libbenchmark_topology_node_state *tns ); 16 | 17 | void libbenchmark_pal_print_string( char const * const string ); 18 | 19 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarkinstance/libbenchmark_benchmarkinstance_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_benchmarkinstance_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libbenchmark_benchmarkinstance_cleanup( struct libbenchmark_benchmarkinstance_state *bs ) 12 | { 13 | LFDS710_PAL_ASSERT( bs != NULL ); 14 | 15 | // TRD : we do naaauuuutttthhiiiinnnn' 16 | 17 | return; 18 | } 19 | 20 | #pragma warning( default : 4100 ) 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarkinstance/libbenchmark_benchmarkinstance_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarks_btree_au_readn_writen/libbenchmark_benchmarks_btree_au_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarks_freelist_push1_then_pop1/libbenchmark_benchmarks_freelist_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarks_queue_umm_enqueue1_then_dequeue1/libbenchmark_benchmarks_queue_umm_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarkset/libbenchmark_benchmarkset_add.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_benchmarkset_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_benchmarkset_add_benchmark( struct libbenchmark_benchmarkset_state *bss, struct libbenchmark_benchmarkinstance_state *bs ) 10 | { 11 | LFDS710_PAL_ASSERT( bss != NULL ); 12 | LFDS710_PAL_ASSERT( bs != NULL ); 13 | 14 | LFDS710_LIST_ASU_SET_VALUE_IN_ELEMENT( bs->lasue, bs ); 15 | lfds710_list_asu_insert_at_end( &bss->benchmarks, &bs->lasue ); 16 | 17 | return; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarkset/libbenchmark_benchmarkset_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_benchmarkset_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libbenchmark_benchmarkset_cleanup( struct libbenchmark_benchmarkset_state *bsets ) 12 | { 13 | LFDS710_PAL_ASSERT( bsets != NULL ); 14 | 15 | return; 16 | } 17 | 18 | #pragma warning( default : 4100 ) 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarkset/libbenchmark_benchmarkset_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarksuite/libbenchmark_benchmarksuite_add.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_benchmarksuite_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_benchmarksuite_add_benchmarkset( struct libbenchmark_benchmarksuite_state *bss, 10 | struct libbenchmark_benchmarkset_state *bsets ) 11 | { 12 | LFDS710_PAL_ASSERT( bss != NULL ); 13 | LFDS710_PAL_ASSERT( bsets != NULL ); 14 | 15 | LFDS710_LIST_ASU_SET_VALUE_IN_ELEMENT( bsets->lasue, bsets ); 16 | lfds710_list_asu_insert_at_end( &bss->benchmarksets, &bsets->lasue ); 17 | 18 | return; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarksuite/libbenchmark_benchmarksuite_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_benchmarksuite_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libbenchmark_benchmarksuite_cleanup( struct libbenchmark_benchmarksuite_state *bss ) 12 | { 13 | LFDS710_PAL_ASSERT( bss != NULL ); 14 | 15 | return; 16 | } 17 | 18 | #pragma warning( default : 4100 ) 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarksuite/libbenchmark_benchmarksuite_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_datastructures_btree_au/libbenchmark_datastructure_btree_au_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** enums *****/ 5 | enum libbenchmark_datastructure_btree_au_move 6 | { 7 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_MOVE_INVALID, 8 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_MOVE_SMALLEST_FROM_RIGHT_CHILD, 9 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_MOVE_LARGEST_FROM_LEFT_CHILD, 10 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_MOVE_GET_PARENT, 11 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_MOVE_MOVE_UP_TREE 12 | }; 13 | 14 | enum libbenchmark_datastructure_btree_au_delete_action 15 | { 16 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_DELETE_SELF, 17 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_DELETE_SELF_REPLACE_WITH_LEFT_CHILD, 18 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_DELETE_SELF_REPLACE_WITH_RIGHT_CHILD, 19 | LIBBENCHMARK_DATASTRUCTURE_BTREE_AU_DELETE_MOVE_LEFT 20 | }; 21 | 22 | /***** private prototypes *****/ 23 | 24 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_datastructures_freelist/libbenchmark_datastructure_freelist_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_datastructures_queue_umm/libbenchmark_datastructure_queue_umm_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_misc/libbenchmark_misc_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_porting_abstraction_layer/libbenchmark_porting_abstraction_layer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libbenchmark_results_cleanup( struct libbenchmark_results_state *rs ) 12 | { 13 | LFDS710_PAL_ASSERT( rs != NULL ); 14 | 15 | return; 16 | } 17 | 18 | #pragma warning( default : 4100 ) 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_results_init( struct libbenchmark_results_state *rs, 10 | struct libshared_memory_state *ms ) 11 | { 12 | LFDS710_PAL_ASSERT( rs != NULL ); 13 | LFDS710_PAL_ASSERT( ms != NULL ); 14 | 15 | lfds710_btree_au_init_valid_on_current_logical_core( &rs->results_tree, libbenchmark_result_compare_function, LFDS710_BTREE_AU_EXISTING_KEY_FAIL, NULL ); 16 | 17 | rs->ms = ms; 18 | 19 | return; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_threadset/libbenchmark_threadset_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_threadset_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libbenchmark_threadset_cleanup( struct libbenchmark_threadset_state *pts ) 12 | { 13 | LFDS710_PAL_ASSERT( pts != NULL ); 14 | 15 | // TRD : we do naaauuuuthin' 16 | 17 | return; 18 | } 19 | 20 | #pragma warning( default : 4100 ) 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_threadset/libbenchmark_threadset_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology/libbenchmark_topology_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_topology_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_topology_cleanup( struct libbenchmark_topology_state *ts ) 10 | { 11 | LFDS710_PAL_ASSERT( ts != NULL ); 12 | 13 | lfds710_btree_au_cleanup( &ts->topology_tree, NULL ); 14 | 15 | lfds710_btree_au_cleanup( &ts->lp_printing_offset_lookup_tree, NULL ); 16 | 17 | return; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology/libbenchmark_topology_insert.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_topology_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_topology_insert( struct libbenchmark_topology_state *ts, struct libbenchmark_topology_node_state *tns ) 10 | { 11 | LFDS710_PAL_ASSERT( ts != NULL ); 12 | LFDS710_PAL_ASSERT( tns != NULL ); 13 | 14 | LFDS710_BTREE_AU_SET_KEY_IN_ELEMENT( tns->baue, tns ); 15 | LFDS710_BTREE_AU_SET_VALUE_IN_ELEMENT( tns->baue, tns ); 16 | lfds710_btree_au_insert( &ts->topology_tree, &tns->baue, NULL ); 17 | 18 | return; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology/libbenchmark_topology_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** structs *****/ 5 | struct libbenchmark_topology_lp_printing_offset 6 | { 7 | int 8 | offset; 9 | 10 | struct lfds710_btree_au_element 11 | baue; 12 | 13 | struct libbenchmark_topology_node_state 14 | tns; 15 | }; 16 | 17 | /***** private prototypes *****/ 18 | lfds710_pal_uint_t count_of_logical_processors_below_node( struct lfds710_btree_au_element *baue ); 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology_node/libbenchmark_topology_node_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_topology_node_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_topology_node_cleanup( struct libbenchmark_topology_node_state *tns, void (*element_cleanup_callback)(struct lfds710_list_aso_state *lasos, struct lfds710_list_aso_element *lasoe) ) 10 | { 11 | LFDS710_PAL_ASSERT( tns != NULL ); 12 | // TRD : element_cleanup_callback can be NULL 13 | 14 | lfds710_list_aso_cleanup( &tns->logical_processor_children, element_cleanup_callback ); 15 | 16 | return; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology_node/libbenchmark_topology_node_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libbenchmark_topology_node_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libbenchmark_topology_node_init( struct libbenchmark_topology_node_state *tns ) 10 | { 11 | LFDS710_PAL_ASSERT( tns != NULL ); 12 | 13 | // TRD : we only ever add logical processor nodes to the logical_processor_children list 14 | lfds710_list_aso_init_valid_on_current_logical_core( &tns->logical_processor_children, libbenchmark_topology_node_compare_nodes_function, LFDS710_LIST_ASO_EXISTING_KEY_FAIL, NULL ); 15 | 16 | return; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_topology_node/libbenchmark_topology_node_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libbenchmark_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/inc/libshared.h: -------------------------------------------------------------------------------- 1 | #ifndef LIBSHARED_H 2 | 3 | /***** defines *****/ 4 | #define LIBSHARED_H 5 | 6 | /***** enums *****/ 7 | enum flag 8 | { 9 | LOWERED, 10 | RAISED 11 | }; 12 | 13 | /***** platform includes *****/ 14 | #include "libshared/libshared_porting_abstraction_layer_operating_system.h" 15 | 16 | /***** extermal includes *****/ 17 | #include "../../../liblfds710/inc/liblfds710.h" 18 | 19 | /***** includes *****/ 20 | #include "libshared/libshared_ansi.h" 21 | #include "libshared/libshared_memory.h" 22 | #include "libshared/libshared_misc.h" 23 | #include "libshared/libshared_porting_abstraction_layer.h" 24 | 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/inc/libshared/libshared_ansi.h: -------------------------------------------------------------------------------- 1 | /***** defines *****/ 2 | 3 | /***** enums *****/ 4 | 5 | /***** structs *****/ 6 | 7 | /***** public prototypes *****/ 8 | lfds710_pal_uint_t libshared_ansi_strlen( char const * const string ); 9 | void libshared_ansi_strcpy( char *destination, char const *source ); 10 | void libshared_ansi_strcat( char *destination, char const * const source ); 11 | void libshared_ansi_strcat_number( char *destination, lfds710_pal_uint_t number ); 12 | void libshared_ansi_strcat_number_with_leading_zeros( char *destination, lfds710_pal_uint_t number, lfds710_pal_uint_t minimum_width ); 13 | void libshared_ansi_strcat_char( char *destination, char const source ); 14 | 15 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/inc/libshared/libshared_misc.h: -------------------------------------------------------------------------------- 1 | /***** defines *****/ 2 | #define LIBSHARED_MISC_VERSION_STRING "7.1.0" 3 | #define LIBSHARED_MISC_VERSION_INTEGER 710 4 | 5 | /***** enums *****/ 6 | enum libshared_misc_query 7 | { 8 | LIBSHARED_MISC_QUERY_GET_BUILD_AND_VERSION_STRING 9 | }; 10 | 11 | /***** externs *****/ 12 | 13 | /***** public prototypes *****/ 14 | void libshared_misc_query( enum libshared_misc_query query_type, void *query_input, void *query_output ); 15 | 16 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_ansi/libshared_ansi_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libshared_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_ansi/libshared_ansi_strcat.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libshared_ansi_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libshared_ansi_strcat( char *destination, char const * const source ) 10 | { 11 | LFDS710_PAL_ASSERT( destination != NULL ); 12 | LFDS710_PAL_ASSERT( source != NULL ); 13 | 14 | while( *destination++ != '\0' ); 15 | 16 | libshared_ansi_strcpy( destination-1, source ); 17 | 18 | return; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_ansi/libshared_ansi_strcat_char.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libshared_ansi_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libshared_ansi_strcat_char( char *destination, char const source ) 10 | { 11 | LFDS710_PAL_ASSERT( destination != NULL ); 12 | // TRD : source can be any value in its range 13 | 14 | while( *destination++ != '\0' ); 15 | 16 | *(destination-1) = source; 17 | *destination = '\0'; 18 | 19 | return; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_ansi/libshared_ansi_strcpy.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libshared_ansi_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4706 ) 10 | 11 | void libshared_ansi_strcpy( char *destination, char const *source ) 12 | { 13 | LFDS710_PAL_ASSERT( destination != NULL ); 14 | LFDS710_PAL_ASSERT( source != NULL ); 15 | 16 | while( (*destination++ = *source++) ); 17 | 18 | return; 19 | } 20 | 21 | #pragma warning( default : 4706 ) 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_ansi/libshared_ansi_strlen.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libshared_ansi_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | lfds710_pal_uint_t libshared_ansi_strlen( char const * const string ) 10 | { 11 | char const 12 | *temp; 13 | 14 | LFDS710_PAL_ASSERT( string != NULL ); 15 | 16 | temp = (char const *) string; 17 | 18 | while( *temp++ != '\0' ); 19 | 20 | return (lfds710_pal_uint_t) (temp-1 - string); 21 | } 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_memory/libshared_memory_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libshared_memory_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libshared_memory_init( struct libshared_memory_state *ms ) 10 | { 11 | LFDS710_PAL_ASSERT( ms != NULL ); 12 | 13 | lfds710_list_asu_init_valid_on_current_logical_core( &ms->list_of_allocations, NULL ); 14 | 15 | return; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_memory/libshared_memory_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libshared_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_misc/libshared_misc_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libshared_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libshared/src/libshared_porting_abstraction_layer/libshared_porting_abstraction_layer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libshared_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/inc/libtest.h: -------------------------------------------------------------------------------- 1 | #ifndef LIBTEST_H 2 | 3 | /***** defines *****/ 4 | #define LIBTEST_H 5 | 6 | /***** enums *****/ 7 | 8 | /***** porting includes *****/ 9 | #include "libtest/libtest_porting_abstraction_layer_operating_system.h" 10 | #include "libtest/libtest_porting_abstraction_layer_compiler.h" 11 | 12 | /***** extermal includes *****/ 13 | #include "../../../liblfds710/inc/liblfds710.h" 14 | #include "../../libshared/inc/libshared.h" 15 | 16 | /***** includes *****/ 17 | #include "libtest/libtest_porting_abstraction_layer.h" 18 | #include "libtest/libtest_misc.h" 19 | #include "libtest/libtest_tests.h" 20 | #include "libtest/libtest_test.h" // TRD : test depends on tests 21 | #include "libtest/libtest_results.h" // TRD : results depends on tests 22 | #include "libtest/libtest_testsuite.h" 23 | #include "libtest/libtest_threadset.h" 24 | 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/inc/libtest/libtest_results.h: -------------------------------------------------------------------------------- 1 | /***** defines *****/ 2 | 3 | /***** enums *****/ 4 | 5 | /***** structs *****/ 6 | struct libtest_results_state 7 | { 8 | enum lfds710_misc_validity 9 | dvs[LIBTEST_TEST_ID_COUNT]; 10 | }; 11 | 12 | /***** public prototypes *****/ 13 | void libtest_results_init( struct libtest_results_state *rs ); 14 | void libtest_results_cleanup( struct libtest_results_state *rs ); 15 | 16 | void libtest_results_put_result( struct libtest_results_state *rs, 17 | enum libtest_test_id test_id, 18 | enum lfds710_misc_validity result ); 19 | void libtest_results_get_result( struct libtest_results_state *rs, 20 | enum libtest_test_id test_id, 21 | enum lfds710_misc_validity *result ); 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_misc/libtest_misc_globals.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_misc_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | char 10 | *libtest_misc_global_validity_names[] = 11 | { 12 | "unknown", 13 | "passed", 14 | "failed - loop detected", 15 | "failed - missing elements", 16 | "failed - additional elements", 17 | "failed - invalid test output", 18 | "failed - invalid test output (ordering)", 19 | "failed - atomic failed", 20 | "indeterminate - non-atomic passed", 21 | }; 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_misc/libtest_misc_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_porting_abstraction_layer/libtest_porting_abstraction_layer_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_results/libtest_results_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libtest_results_cleanup( struct libtest_results_state *rs ) 12 | { 13 | LFDS710_PAL_ASSERT( rs != NULL ); 14 | 15 | return; 16 | } 17 | 18 | #pragma warning( default : 4100 ) 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_results/libtest_results_get_result.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_results_get_result( struct libtest_results_state *rs, enum libtest_test_id test_id, enum lfds710_misc_validity *result ) 10 | { 11 | LFDS710_PAL_ASSERT( rs != NULL ); 12 | // TRD : test_id can be any value in its range 13 | LFDS710_PAL_ASSERT( result != NULL ); 14 | 15 | *result = rs->dvs[test_id]; 16 | 17 | return; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_results/libtest_results_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_results_init( struct libtest_results_state *rs ) 10 | { 11 | enum libtest_test_id 12 | test_id; 13 | 14 | LFDS710_PAL_ASSERT( rs != NULL ); 15 | 16 | for( test_id = 0 ; test_id < LIBTEST_TEST_ID_COUNT ; test_id++ ) 17 | rs->dvs[test_id] = LFDS710_MISC_VALIDITY_UNKNOWN; 18 | 19 | return; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_results/libtest_results_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_results/libtest_results_put_result.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_results_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_results_put_result( struct libtest_results_state *rs, enum libtest_test_id test_id, enum lfds710_misc_validity result ) 10 | { 11 | LFDS710_PAL_ASSERT( rs != NULL ); 12 | // TRD : test_id can be any value in its range 13 | // TRD : result can be any value in its range 14 | 15 | rs->dvs[test_id] = result; 16 | 17 | return; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_test/libtest_test_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_test_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libtest_test_cleanup( struct libtest_test_state *ts ) 12 | { 13 | LFDS710_PAL_ASSERT( ts != NULL ); 14 | 15 | // TRD : we do naaauuuutttthhiiiinnnn' 16 | 17 | return; 18 | } 19 | 20 | #pragma warning( default : 4100 ) 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_test/libtest_test_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_test_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_test_init( struct libtest_test_state *ts, 10 | char *name, 11 | enum libtest_test_id test_id, 12 | void (*test_function)(struct lfds710_list_asu_state *list_of_logical_processors, struct libshared_memory_state *ms, enum lfds710_misc_validity *dvs) ) 13 | { 14 | LFDS710_PAL_ASSERT( ts != NULL ); 15 | LFDS710_PAL_ASSERT( name != NULL ); 16 | // TRD : test_id can be any value in its range 17 | LFDS710_PAL_ASSERT( test_function != NULL ); 18 | 19 | ts->name = name; 20 | ts->test_id = test_id; 21 | ts->test_function = test_function; 22 | 23 | return; 24 | } 25 | 26 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_test/libtest_test_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_test/libtest_test_run.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_test_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_test_run( struct libtest_test_state *ts, 10 | struct lfds710_list_asu_state *list_of_logical_processors, 11 | struct libshared_memory_state *ms, 12 | enum lfds710_misc_validity *dvs ) 13 | { 14 | LFDS710_PAL_ASSERT( ts != NULL ); 15 | LFDS710_PAL_ASSERT( list_of_logical_processors != NULL ); 16 | LFDS710_PAL_ASSERT( ms != NULL ); 17 | LFDS710_PAL_ASSERT( dvs != NULL ); 18 | 19 | ts->test_function( list_of_logical_processors, ms, dvs ); 20 | 21 | return; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_tests/libtest_tests_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** defines *****/ 5 | #define TEST_DURATION_IN_SECONDS 5 6 | #define TIME_LOOP_COUNT 10000 7 | #define REDUCED_TIME_LOOP_COUNT 1000 8 | 9 | /***** private prototypes *****/ 10 | 11 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_tests/libtest_tests_prng_alignment.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_tests_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 4127 ) // TRD : disables MSVC warning for condition expressions being const 10 | 11 | void libtest_tests_prng_alignment( struct lfds710_list_asu_state *list_of_logical_processors, struct libshared_memory_state *ms, enum lfds710_misc_validity *dvs ) 12 | { 13 | LFDS710_PAL_ASSERT( list_of_logical_processors != NULL ); 14 | LFDS710_PAL_ASSERT( ms != NULL ); 15 | LFDS710_PAL_ASSERT( dvs != NULL ); 16 | 17 | *dvs = LFDS710_MISC_VALIDITY_VALID; 18 | 19 | // TRD : struct lfds710_prng_state 20 | if( LIBTEST_MISC_OFFSETOF(struct lfds710_prng_state,entropy) % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES != 0 ) 21 | *dvs = LFDS710_MISC_VALIDITY_INVALID_TEST_DATA; 22 | 23 | return; 24 | } 25 | 26 | #pragma warning( default : 4100 4127 ) 27 | 28 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_testsuite/libtest_testsuite_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_testsuite_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_testsuite_cleanup( struct libtest_testsuite_state *ts ) 10 | { 11 | LFDS710_PAL_ASSERT( ts != NULL ); 12 | 13 | lfds710_list_asu_cleanup( &ts->list_of_logical_processors, NULL ); 14 | 15 | return; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_testsuite/libtest_testsuite_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_threadset/libtest_threadset_cleanup.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_threadset_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | #pragma warning( disable : 4100 ) 10 | 11 | void libtest_threadset_cleanup( struct libtest_threadset_state *ts ) 12 | { 13 | LFDS710_PAL_ASSERT( ts != NULL ); 14 | 15 | // TRD : we do naaauuuuthin' 16 | 17 | return; 18 | } 19 | 20 | #pragma warning( default : 4100 ) 21 | 22 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_threadset/libtest_threadset_init.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "libtest_threadset_internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void libtest_threadset_init( struct libtest_threadset_state *ts, 10 | void *user_state ) 11 | { 12 | LFDS710_PAL_ASSERT( ts != NULL ); 13 | // TRD : user_state can be NULL 14 | 15 | ts->threadset_start_flag = LOWERED; 16 | ts->user_state = user_state; 17 | 18 | lfds710_list_asu_init_valid_on_current_logical_core( &ts->list_of_per_thread_states, NULL ); 19 | 20 | return; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_threadset/libtest_threadset_internal.h: -------------------------------------------------------------------------------- 1 | /***** the library wide include file *****/ 2 | #include "../libtest_internal.h" 3 | 4 | /***** private prototypes *****/ 5 | 6 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/test/src/callbacks.c: -------------------------------------------------------------------------------- 1 | /***** includes *****/ 2 | #include "internal.h" 3 | 4 | 5 | 6 | 7 | 8 | /****************************************************************************/ 9 | void callback_test_start( char *test_name ) 10 | { 11 | assert( test_name != NULL ); 12 | 13 | printf( "%s...", test_name ); 14 | fflush( stdout ); 15 | 16 | return; 17 | } 18 | 19 | 20 | 21 | 22 | 23 | /****************************************************************************/ 24 | void callback_test_finish( char *result ) 25 | { 26 | assert( result != NULL ); 27 | 28 | printf( "%s\n", result ); 29 | 30 | return; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /libfs/lib/liblfds7.1.0/test_and_benchmark/what do we have here.txt: -------------------------------------------------------------------------------- 1 | benchmark : command line veneer calling the libbenchmark API 2 | libbenchmark : the benchmarkng code 3 | libshared : various shared APIs'n'stuff, everyone else depends on this 4 | libtest : the testing code 5 | test : command line veneer calling the libtest API 6 | 7 | TO TEST : compile libshared, libtest and test. 8 | 9 | TO BENCHMARK : compile libshared, libbenchmark and benchmark. 10 | 11 | test and benchmark are veneers only - they give a nice command line wrapper 12 | around libtest and libbenchmark; they have no actual real code in. If you 13 | want to run test or benchmark on platforms without a command line, just 14 | compile libshared and libtest or libbenchmark, and call the test or the 15 | benchmark API directly - they're designed to be zero work for the caller. 16 | 17 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/.gitignore: -------------------------------------------------------------------------------- 1 | # -*- mode: gitignore; -*- 2 | # CMake 3 | cmake_install.cmake 4 | CMakeFiles 5 | CMakeCache.txt 6 | lib*.a 7 | /bin/** 8 | /lib/** 9 | /include/** 10 | /.ninja* 11 | *.ninja 12 | Makefile 13 | 14 | # Tags 15 | TAGS 16 | .TAGS 17 | !TAGS/ 18 | tags 19 | .tags 20 | !tags/ 21 | gtags.files 22 | GTAGS 23 | GRTAGS 24 | GPATH 25 | 26 | # cscope 27 | cscope.files 28 | cscope.out 29 | cscope.in.out 30 | cscope.po.out 31 | 32 | # Emacs 33 | *~ 34 | \#*\# 35 | /.emacs.desktop 36 | /.emacs.desktop.lock 37 | *.elc 38 | auto-save-list 39 | tramp 40 | .\#* 41 | 42 | # Org-mode 43 | .org-id-locations 44 | *_archive 45 | 46 | # flymake-mode 47 | *_flymake.* 48 | 49 | # eshell files 50 | /eshell/history 51 | /eshell/lastdir 52 | 53 | # elpa packages 54 | /elpa/ 55 | 56 | # reftex files 57 | *.rel 58 | 59 | # AUCTeX auto folder 60 | /auto/ 61 | 62 | # cask packages 63 | .cask/ 64 | 65 | # vim 66 | [._]*.s[a-w][a-z] 67 | [._]s[a-w][a-z] 68 | *.un~ 69 | Session.vim 70 | .netrwhist 71 | *~ 72 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/.mailmap: -------------------------------------------------------------------------------- 1 | # 2 | # This list is used by git-shortlog to fix a few botched name translations 3 | # in the git archive, either because the author's full name was messed up 4 | # and/or not always written the same way, making contributions from the 5 | # same person appearing not to be so or badly displayed. 6 | # 7 | Jason Gunthorpe 8 | Jason Gunthorpe 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/Documentation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(FILES 2 | ibacm.md 3 | ibsrpdm.md 4 | libibverbs.md 5 | librdmacm.md 6 | rxe.md 7 | udev.md 8 | tag_matching.md 9 | ../README.md 10 | ../MAINTAINERS 11 | DESTINATION "${CMAKE_INSTALL_DOCDIR}") 12 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/Documentation/rxe.md: -------------------------------------------------------------------------------- 1 | # Configure Soft-RoCE (RXE): 2 | 3 | Load rdma_rxe kernel module using the rxe_cfg script included in the librxe RPM: 4 | 5 | # rxe_cfg start (this might require sudo or root privileges) 6 | 7 | Create RXE device over network interface (e.g. eth0): 8 | 9 | # rxe_cfg add eth0 10 | 11 | Use the status command to display the current configuration: 12 | rxe_cfg status 13 | 14 | If configured successfully, you should see output similar to the following: 15 | 16 | ``` 17 | Name Link Driver Speed NMTU IPv4_addr RDEV RMTU 18 | eth0 yes mlx4_en rxe0 1024 (3) 19 | ``` 20 | 21 | If you are using a Mellanox HCA: Need to make sure that the mlx4_ib kernel module is not loaded (modprobe –rv mlx4_ib) in the soft-RoCE machine. 22 | Now you have an Infiniband device called “rxe0” that can be used to run any RoCE app. 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | SRCDIR=`dirname $0` 5 | BUILDDIR="$SRCDIR/build" 6 | 7 | mkdir -p "$BUILDDIR" 8 | 9 | if hash cmake3 2>/dev/null; then 10 | # CentOS users are encouraged to install cmake3 from EPEL 11 | CMAKE=cmake3 12 | else 13 | CMAKE=cmake 14 | fi 15 | 16 | if hash ninja-build 2>/dev/null; then 17 | # Fedora uses this name 18 | NINJA=ninja-build 19 | elif hash ninja 2>/dev/null; then 20 | NINJA=ninja 21 | fi 22 | 23 | cd "$BUILDDIR" 24 | 25 | if [ "x$NINJA" == "x" ]; then 26 | $CMAKE -DIN_PLACE=1 ${EXTRA_CMAKE_FLAGS:-} .. 27 | make 28 | else 29 | $CMAKE -DIN_PLACE=1 -GNinja ${EXTRA_CMAKE_FLAGS:-} .. 30 | $NINJA 31 | fi 32 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/FindUDev.cmake: -------------------------------------------------------------------------------- 1 | # COPYRIGHT (c) 2016 Obsidian Research Corporation. 2 | # Licensed under BSD (MIT variant) or GPLv2. See COPYING. 3 | 4 | find_library(LIBUDEV_LIBRARY NAMES udev libudev) 5 | 6 | set(UDEV_LIBRARIES ${LIBUDEV_LIBRARY}) 7 | 8 | include(FindPackageHandleStandardArgs) 9 | find_package_handle_standard_args(UDev REQUIRED_VARS LIBUDEV_LIBRARY) 10 | 11 | mark_as_advanced(LIBUDEV_LIBRARY) 12 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/Findpandoc.cmake: -------------------------------------------------------------------------------- 1 | # COPYRIGHT (c) 2017 Mellanox Technologies Ltd 2 | # Licensed under BSD (MIT variant) or GPLv2. See COPYING. 3 | find_program(PANDOC_EXECUTABLE NAMES pandoc) 4 | 5 | if(PANDOC_EXECUTABLE) 6 | execute_process(COMMAND "${PANDOC_EXECUTABLE}" -v 7 | OUTPUT_VARIABLE _VERSION 8 | RESULT_VARIABLE _VERSION_RESULT 9 | ERROR_QUIET) 10 | 11 | if(NOT _VERSION_RESULT) 12 | string(REGEX REPLACE "^pandoc ([^\n]+)\n.*" "\\1" PANDOC_VERSION_STRING "${_VERSION}") 13 | endif() 14 | unset(_VERSION_RESULT) 15 | unset(_VERSION) 16 | endif() 17 | 18 | include(FindPackageHandleStandardArgs) 19 | find_package_handle_standard_args(pandoc REQUIRED_VARS PANDOC_EXECUTABLE PANDOC_VERSION_STRING VERSION_VAR PANDOC_VERSION_STRING) 20 | 21 | mark_as_advanced(PANDOC_EXECUTABLE) 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/const_structs.checkpatch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma-core/buildlib/const_structs.checkpatch -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/assert.h: -------------------------------------------------------------------------------- 1 | #ifndef _FIXUP_ASSERT_H 2 | #define _FIXUP_ASSERT_H 3 | 4 | #include_next 5 | 6 | /* Without C11 compiler support it is not possible to implement static_assert */ 7 | #undef static_assert 8 | #define static_assert(_cond, msg) 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/linux-in.h: -------------------------------------------------------------------------------- 1 | /* if in.h can't be included just leave it empty */ 2 | #include 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/linux-in6.h: -------------------------------------------------------------------------------- 1 | /* if in6.h can't be included just leave it empty */ 2 | #include 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/systemd-sd-daemon.h: -------------------------------------------------------------------------------- 1 | #define SD_LISTEN_FDS_START 3 2 | 3 | static inline int sd_listen_fds(int unset_environment) 4 | { 5 | return 0; 6 | } 7 | 8 | static inline int sd_is_socket(int fd, int family, int type, int listening) 9 | { 10 | return 0; 11 | } 12 | 13 | static inline int sd_notify(int unset_environment, const char *state) 14 | { 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/valgrind-drd.h: -------------------------------------------------------------------------------- 1 | static inline void ANNOTATE_BENIGN_RACE_SIZED(const void *mem,size_t len,const char *desc) {} 2 | #define ANNOTATE_BENIGN_RACE_SIZED ANNOTATE_BENIGN_RACE_SIZED 3 | 4 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/fixup-include/valgrind-memcheck.h: -------------------------------------------------------------------------------- 1 | static inline void VALGRIND_MAKE_MEM_DEFINED(const void *mem,size_t len) {} 2 | #define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_MEM_DEFINED 3 | 4 | static inline void VALGRIND_MAKE_MEM_UNDEFINED(const void *mem,size_t len) {} 5 | #define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_MEM_UNDEFINED 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/github-release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [[ $TRAVIS_TAG == v* ]] && [ "$TRAVIS_OS_NAME" = "linux" ]; then 6 | # Let's create release for vX tags only. 7 | # Strip the v from the TRAVIS_TAG for our prefix and output items 8 | REL_TAG=`echo $TRAVIS_TAG | sed -e 's/^v//'` 9 | git archive --prefix rdma-core-$REL_TAG/ --output rdma-core-$REL_TAG.tar $TRAVIS_TAG 10 | tar -rf rdma-core-$REL_TAG.tar build-travis/pandoc-prebuilt/ --xform "s|build-travis/pandoc-prebuilt|rdma-core-$REL_TAG/buildlib/pandoc-prebuilt|g" 11 | gzip -9 rdma-core-$REL_TAG.tar 12 | fi 13 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/package-build-test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fail on errors 4 | set -e 5 | # be verbose 6 | set -x 7 | 8 | # Do not run these tests if we are already inside a container 9 | if [ -e "/.dockerenv" ] || (grep -q docker /proc/self/cgroup &>/dev/null); then 10 | echo "We are running in a container, skipping ..." 11 | exit 0 12 | fi 13 | 14 | for OS in centos7 tumbleweed 15 | do 16 | echo 17 | echo "Checking package build for ${OS} ...." 18 | echo 19 | buildlib/cbuild build-images ${OS} 20 | buildlib/cbuild pkg --use-prebuilt-pandoc ${OS} 21 | done 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/provider.map: -------------------------------------------------------------------------------- 1 | /* The providers do not export any symbols at all. Instead they rely on 2 | attribute(constructor) to cause their init function to run at dlopen 3 | time. */ 4 | { 5 | local: *; 6 | }; 7 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/relpath: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # Copyright 2017 Mellanox Technologies, Inc. 3 | # Licensed under BSD (MIT variant) or GPLv2. See COPYING. 4 | 5 | import os 6 | import sys 7 | 8 | print(os.path.relpath(sys.argv[1], sys.argv[2])) 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/sparse-include/23/sys-socket.h.diff: -------------------------------------------------------------------------------- 1 | --- /usr/include/sys/socket.h 2016-11-16 15:43:53.000000000 -0700 2 | +++ build-sparse/include/sys/socket.h 2017-03-15 12:43:28.736376893 -0600 3 | @@ -65,7 +65,7 @@ 4 | uses with any of the listed types to be allowed without complaint. 5 | G++ 2.7 does not support transparent unions so there we want the 6 | old-style declaration, too. */ 7 | -#if defined __cplusplus || !__GNUC_PREREQ (2, 7) || !defined __USE_GNU 8 | +#if 1 9 | # define __SOCKADDR_ARG struct sockaddr *__restrict 10 | # define __CONST_SOCKADDR_ARG const struct sockaddr * 11 | #else 12 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/buildlib/sparse-include/pthread.h: -------------------------------------------------------------------------------- 1 | /* COPYRIGHT (c) 2017 Obsidian Research Corporation. 2 | Licensed under BSD (MIT variant) or GPLv2. See COPYING. */ 3 | 4 | #ifndef _SPARSE_PTHREAD_H_ 5 | #define _SPARSE_PTHREAD_H_ 6 | 7 | #include_next 8 | 9 | /* Sparse complains that the glibc version of this has 0 instead of NULL */ 10 | #undef PTHREAD_MUTEX_INITIALIZER 11 | #define PTHREAD_MUTEX_INITIALIZER {} 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ccan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | publish_internal_headers(ccan 2 | array_size.h 3 | bitmap.h 4 | build_assert.h 5 | check_type.h 6 | container_of.h 7 | list.h 8 | minmax.h 9 | str.h 10 | str_debug.h 11 | ) 12 | 13 | set(C_FILES 14 | bitmap.c 15 | list.c 16 | str.c 17 | ) 18 | add_library(ccan STATIC ${C_FILES}) 19 | add_library(ccan_pic STATIC ${C_FILES}) 20 | set_property(TARGET ccan_pic PROPERTY POSITION_INDEPENDENT_CODE TRUE) 21 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ccan/array_size.h: -------------------------------------------------------------------------------- 1 | /* CC0 (Public domain) - see LICENSE file for details */ 2 | #ifndef CCAN_ARRAY_SIZE_H 3 | #define CCAN_ARRAY_SIZE_H 4 | #include "config.h" 5 | #include 6 | 7 | /** 8 | * ARRAY_SIZE - get the number of elements in a visible array 9 | * @arr: the array whose size you want. 10 | * 11 | * This does not work on pointers, or arrays declared as [], or 12 | * function parameters. With correct compiler support, such usage 13 | * will cause a build error (see build_assert). 14 | */ 15 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + _array_size_chk(arr)) 16 | 17 | #if HAVE_BUILTIN_TYPES_COMPATIBLE_P && HAVE_TYPEOF 18 | /* Two gcc extensions. 19 | * &a[0] degrades to a pointer: a different type from an array */ 20 | #define _array_size_chk(arr) \ 21 | BUILD_ASSERT_OR_ZERO(!__builtin_types_compatible_p(typeof(arr), \ 22 | typeof(&(arr)[0]))) 23 | #else 24 | #define _array_size_chk(arr) 0 25 | #endif 26 | #endif /* CCAN_ALIGNOF_H */ 27 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ccan/str.c: -------------------------------------------------------------------------------- 1 | /* CC0 (Public domain) - see LICENSE.CC0 file for details */ 2 | #include 3 | 4 | size_t strcount(const char *haystack, const char *needle) 5 | { 6 | size_t i = 0, nlen = strlen(needle); 7 | 8 | while ((haystack = strstr(haystack, needle)) != NULL) { 9 | i++; 10 | haystack += nlen; 11 | } 12 | return i; 13 | } 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ccan/str_debug.h: -------------------------------------------------------------------------------- 1 | /* CC0 (Public domain) - see LICENSE.CC0 file for details */ 2 | #ifndef CCAN_STR_DEBUG_H 3 | #define CCAN_STR_DEBUG_H 4 | 5 | /* #define CCAN_STR_DEBUG 1 */ 6 | 7 | #ifdef CCAN_STR_DEBUG 8 | /* Because we mug the real ones with macros, we need our own wrappers. */ 9 | int str_isalnum(int i); 10 | int str_isalpha(int i); 11 | int str_isascii(int i); 12 | #if HAVE_ISBLANK 13 | int str_isblank(int i); 14 | #endif 15 | int str_iscntrl(int i); 16 | int str_isdigit(int i); 17 | int str_isgraph(int i); 18 | int str_islower(int i); 19 | int str_isprint(int i); 20 | int str_ispunct(int i); 21 | int str_isspace(int i); 22 | int str_isupper(int i); 23 | int str_isxdigit(int i); 24 | 25 | char *str_strstr(const char *haystack, const char *needle); 26 | char *str_strchr(const char *s, int c); 27 | char *str_strrchr(const char *s, int c); 28 | #endif /* CCAN_STR_DEBUG */ 29 | 30 | #endif /* CCAN_STR_DEBUG_H */ 31 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibacm.install: -------------------------------------------------------------------------------- 1 | etc/init.d/ibacm 2 | lib/systemd/system/ibacm.service 3 | lib/systemd/system/ibacm.socket 4 | usr/bin/ib_acme 5 | usr/include/infiniband/acm.h 6 | usr/include/infiniband/acm_prov.h 7 | usr/lib/*/ibacm/libibacmp.so 8 | usr/sbin/ibacm 9 | usr/share/doc/rdma-core/ibacm.md usr/share/doc/ibacm/ 10 | usr/share/man/man1/ib_acme.1 11 | usr/share/man/man1/ibacm.1 12 | usr/share/man/man7/ibacm.7 13 | usr/share/man/man7/ibacm_prov.7 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibacm.lintian-overrides: -------------------------------------------------------------------------------- 1 | # The wantedby target rdma-hw.target is intentional (see rdma-core) 2 | ibacm: systemd-service-file-refers-to-unusual-wantedby-target lib/systemd/system/ibacm.service rdma-hw.target 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibverbs-providers.install: -------------------------------------------------------------------------------- 1 | etc/libibverbs.d/ 2 | usr/lib/*/libibverbs/lib*-rdmav*.so 3 | usr/lib/*/libmlx4.so.* 4 | usr/lib/*/libmlx5.so.* 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibverbs-providers.lintian-overrides: -------------------------------------------------------------------------------- 1 | # libmlx4 and libmlx5 are ibverbs provider that provides more functions. 2 | ibverbs-providers: package-name-doesnt-match-sonames libmlx4-1 libmlx5-1 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibverbs-providers.symbols: -------------------------------------------------------------------------------- 1 | libmlx4.so.1 ibverbs-providers #MINVER# 2 | MLX4_1.0@MLX4_1.0 15 3 | mlx4dv_init_obj@MLX4_1.0 15 4 | mlx4dv_query_device@MLX4_1.0 15 5 | mlx4dv_create_qp@MLX4_1.0 15 6 | mlx4dv_set_context_attr@MLX4_1.0 15 7 | libmlx5.so.1 ibverbs-providers #MINVER# 8 | MLX5_1.0@MLX5_1.0 13 9 | MLX5_1.1@MLX5_1.1 14 10 | MLX5_1.2@MLX5_1.2 15 11 | MLX5_1.3@MLX5_1.3 16 12 | MLX5_1.4@MLX5_1.4 17 13 | MLX5_1.5@MLX5_1.5 18 14 | mlx5dv_init_obj@MLX5_1.0 13 15 | mlx5dv_init_obj@MLX5_1.2 15 16 | mlx5dv_query_device@MLX5_1.0 13 17 | mlx5dv_create_cq@MLX5_1.1 14 18 | mlx5dv_set_context_attr@MLX5_1.2 15 19 | mlx5dv_create_qp@MLX5_1.3 16 20 | mlx5dv_create_wq@MLX5_1.3 16 21 | mlx5dv_get_clock_info@MLX5_1.4 17 22 | mlx5dv_create_flow_action_esp@MLX5_1.5 18 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/ibverbs-utils.install: -------------------------------------------------------------------------------- 1 | usr/bin/ibv_asyncwatch 2 | usr/bin/ibv_devices 3 | usr/bin/ibv_devinfo 4 | usr/bin/ibv_rc_pingpong 5 | usr/bin/ibv_srq_pingpong 6 | usr/bin/ibv_uc_pingpong 7 | usr/bin/ibv_ud_pingpong 8 | usr/bin/ibv_xsrq_pingpong 9 | usr/share/man/man1/ibv_asyncwatch.1 10 | usr/share/man/man1/ibv_devices.1 11 | usr/share/man/man1/ibv_devinfo.1 12 | usr/share/man/man1/ibv_rc_pingpong.1 13 | usr/share/man/man1/ibv_srq_pingpong.1 14 | usr/share/man/man1/ibv_uc_pingpong.1 15 | usr/share/man/man1/ibv_ud_pingpong.1 16 | usr/share/man/man1/ibv_xsrq_pingpong.1 17 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/libibumad-dev.install: -------------------------------------------------------------------------------- 1 | usr/include/infiniband/umad*.h 2 | usr/lib/*/libibumad*.so 3 | usr/share/man/man3/umad_* 4 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/libibumad3.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/libibumad*.so.* 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/libibverbs-dev.install: -------------------------------------------------------------------------------- 1 | usr/include/infiniband/arch.h 2 | usr/include/infiniband/ib_user_ioctl_verbs.h 3 | usr/include/infiniband/mlx4dv.h 4 | usr/include/infiniband/mlx5_api.h 5 | usr/include/infiniband/mlx5_user_ioctl_verbs.h 6 | usr/include/infiniband/mlx5dv.h 7 | usr/include/infiniband/opcode.h 8 | usr/include/infiniband/sa-kern-abi.h 9 | usr/include/infiniband/sa.h 10 | usr/include/infiniband/tm_types.h 11 | usr/include/infiniband/verbs.h 12 | usr/include/infiniband/verbs_api.h 13 | usr/lib/*/libibverbs*.so 14 | usr/lib/*/libmlx4.so 15 | usr/lib/*/libmlx5.so 16 | usr/share/man/man3/ibv_* 17 | usr/share/man/man3/mbps_to_ibv_rate.3 18 | usr/share/man/man3/mlx4dv_*.3 19 | usr/share/man/man3/mlx5dv_*.3 20 | usr/share/man/man3/mult_to_ibv_rate.3 21 | usr/share/man/man7/mlx4dv.7 22 | usr/share/man/man7/mlx5dv.7 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/libibverbs1.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/libibverbs*.so.* 2 | usr/share/doc/rdma-core/libibverbs.md usr/share/doc/libibverbs1/ 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/libibverbs1.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for libibverbs1 3 | 4 | set -e 5 | 6 | if [ "$1" = configure ]; then 7 | getent group rdma > /dev/null 2>&1 || addgroup --system --quiet rdma 8 | fi 9 | 10 | #DEBHELPER# 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/librdmacm1.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/librdmacm*.so.* 2 | usr/lib/*/rsocket/librspreload*.so* 3 | usr/share/doc/rdma-core/librdmacm.md usr/share/doc/librdmacm1/ 4 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/rdma-core.lintian-overrides: -------------------------------------------------------------------------------- 1 | # The rdma-ndd service is started by udev. 2 | rdma-core: systemd-service-file-missing-install-key lib/systemd/system/iwpmd.service 3 | rdma-core: systemd-service-file-missing-install-key lib/systemd/system/rdma-ndd.service 4 | # Example/documentary udev rules file 5 | rdma-core: udev-rule-in-etc etc/udev/rules.d/70-persistent-ipoib.rules 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/rdma-core.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | #DEBHELPER# 5 | 6 | if [ "$1" = "configure" ]; then 7 | # we ship udev rules, so trigger an update. This has to be done after 8 | # DEBHELPER restarts systemd to get our new service files loaded. 9 | udevadm trigger --subsystem-match=infiniband --action=change || true 10 | udevadm trigger --subsystem-match=net --action=change || true 11 | udevadm trigger --subsystem-match=infiniband_mad --action=change || true 12 | fi 13 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/rdmacm-utils.install: -------------------------------------------------------------------------------- 1 | usr/bin/cmtime 2 | usr/bin/mckey 3 | usr/bin/rcopy 4 | usr/bin/rdma_client 5 | usr/bin/rdma_server 6 | usr/bin/rdma_xclient 7 | usr/bin/rdma_xserver 8 | usr/bin/riostream 9 | usr/bin/rping 10 | usr/bin/rstream 11 | usr/bin/ucmatose 12 | usr/bin/udaddy 13 | usr/bin/udpong 14 | usr/share/man/man1/cmtime.1 15 | usr/share/man/man1/mckey.1 16 | usr/share/man/man1/rcopy.1 17 | usr/share/man/man1/rdma_client.1 18 | usr/share/man/man1/rdma_server.1 19 | usr/share/man/man1/rdma_xclient.1 20 | usr/share/man/man1/rdma_xserver.1 21 | usr/share/man/man1/riostream.1 22 | usr/share/man/man1/rping.1 23 | usr/share/man/man1/rstream.1 24 | usr/share/man/man1/ucmatose.1 25 | usr/share/man/man1/udaddy.1 26 | usr/share/man/man1/udpong.1 27 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/source/lintian-overrides: -------------------------------------------------------------------------------- 1 | # The libibverbs examples are compiled and put in ibverbs-utils. 2 | rdma-core source: package-does-not-install-examples libibverbs/examples/ 3 | # The librdmacm examples are compiled and put in rdmacm-utils. 4 | rdma-core source: package-does-not-install-examples librdmacm/examples/ 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/srptools.default: -------------------------------------------------------------------------------- 1 | # How often should srp_daemon rescan the fabric (seconds). 2 | RETRIES=60 3 | 4 | # Where should srp_daemon log to. 5 | LOG=/var/log/srp_daemon.log 6 | 7 | # What ports should srp_daemon be started on. 8 | # Format is CA:port 9 | # ALL or NONE will run on all ports on none 10 | # respectively 11 | 12 | PORTS=NONE 13 | #PORTS=ALL 14 | #PORTS="mthca0:1 mlx4_0:2" 15 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/srptools.install: -------------------------------------------------------------------------------- 1 | etc/rdma/modules/srp_daemon.conf 2 | etc/srp_daemon.conf 3 | lib/systemd/system/srp_daemon.service 4 | lib/systemd/system/srp_daemon_port@.service 5 | lib/udev/rules.d/60-srp_daemon.rules 6 | usr/lib/srp_daemon/start_on_all_ports 7 | usr/sbin/ibsrpdm 8 | usr/sbin/srp_daemon 9 | usr/share/doc/rdma-core/ibsrpdm.md usr/share/doc/srptools/ 10 | usr/share/man/man1/ibsrpdm.1 11 | usr/share/man/man1/srp_daemon.1 12 | usr/share/man/man5/srp_daemon.service.5 13 | usr/share/man/man5/srp_daemon_port@.service.5 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/srptools.links: -------------------------------------------------------------------------------- 1 | /lib/systemd/system/srp_daemon.service /lib/systemd/system/srptools.service 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/srptools.lintian-overrides: -------------------------------------------------------------------------------- 1 | # The wantedby target remote-fs-pre.target is intentional 2 | srptools: systemd-service-file-refers-to-unusual-wantedby-target lib/systemd/system/*.service remote-fs-pre.target 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/srptools.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | #DEBHELPER# 5 | 6 | if [ "$1" = "configure" ]; then 7 | # we ship udev rules, so trigger an update. This has to be done after 8 | # DEBHELPER restarts systemd to get our new service files loaded. 9 | udevadm trigger --subsystem-match=infiniband_mad --action=change || true 10 | fi 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | https://github.com/linux-rdma/rdma-core/releases (?:.*?/)?(?:rdma-core-|v)?(\d[\d.]*)\.tar\.gz 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ibacm/ibacm.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=InfiniBand Address Cache Manager Daemon 3 | Documentation=man:ibacm file:@CMAKE_INSTALL_FULL_SYSCONFDIR@/rdma/ibacm_opts.cfg 4 | # Cause systemd to always start the socket, which means the parameters in 5 | # ibacm.socket always configures the listening socket, even if the deamon is 6 | # started directly. 7 | Wants=ibacm.socket 8 | # Ensure required kernel modules are loaded before starting 9 | Wants=rdma-load-modules@rdma.service 10 | After=rdma-load-modules@rdma.service 11 | # Order ibacm startup after basic RDMA hw setup. 12 | After=rdma-hw.target 13 | 14 | # Implicitly after basic.target, note that ibacm writes to /var/log directly 15 | # and thus needs writable filesystems setup. 16 | 17 | [Service] 18 | Type=notify 19 | ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/ibacm --systemd 20 | 21 | [Install] 22 | Also=ibacm.socket 23 | # Only want ibacm if RDMA hardware is present (or the socket is touched) 24 | WantedBy=rdma-hw.target 25 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ibacm/ibacm_hosts.data: -------------------------------------------------------------------------------- 1 | # InfiniBand Communication Management Assistant for clusters hosts file 2 | # 3 | # Entry format is: 4 | # address IB GID 5 | # 6 | # The address may be one of the following: 7 | # host_name - ascii character string, up to 31 characters 8 | # address - IPv4 or IPv6 formatted address 9 | # 10 | # There can be multiple entries for a single IB GID 11 | # 12 | # Samples: 13 | # luna3 fe80::8:f104:39a:169 14 | # 192.168.1.3 fe80::8:f104:39a:169 15 | # fe80::208:f104:39a:169 fe80::8:f104:39a:169 16 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/ibacm/prov/acmp/src/libibacmp.map: -------------------------------------------------------------------------------- 1 | ACMP_1.0 { 2 | global: 3 | provider_query; 4 | local: *; 5 | }; 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/iwpmd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_sbin_executable(iwpmd 2 | iwarp_pm_common.c 3 | iwarp_pm_helper.c 4 | iwarp_pm_server.c 5 | ) 6 | target_link_libraries(iwpmd LINK_PRIVATE 7 | ${SYSTEMD_LIBRARIES} 8 | ${NL_LIBRARIES} 9 | ${CMAKE_THREAD_LIBS_INIT} 10 | ) 11 | 12 | rdma_man_pages( 13 | iwpmd.8.in 14 | iwpmd.conf.5.in 15 | ) 16 | 17 | rdma_subst_install(FILES "iwpmd.service.in" 18 | RENAME "iwpmd.service" 19 | DESTINATION "${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}") 20 | rdma_subst_install(FILES "iwpmd_init.in" 21 | DESTINATION "${CMAKE_INSTALL_INITDDIR}" 22 | RENAME "iwpmd" 23 | PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) 24 | install(FILES "iwpmd.conf" DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}") 25 | 26 | install(FILES "iwpmd.rules" 27 | RENAME "90-iwpmd.rules" 28 | DESTINATION "${CMAKE_INSTALL_UDEV_RULESDIR}") 29 | 30 | install(FILES modules-iwpmd.conf 31 | RENAME "iwpmd.conf" 32 | DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/rdma/modules") 33 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/iwpmd/iwpmd.conf: -------------------------------------------------------------------------------- 1 | nl_sock_rbuf_size=419430400 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/iwpmd/iwpmd.conf.5.in: -------------------------------------------------------------------------------- 1 | .TH "iwpmd.conf" 5 "2016-09-16" "iwpmd.conf" "iwpmd.conf" iwpmd.conf 2 | .SH NAME 3 | iwpmd.conf \- iWARP port mapper config file. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIiwpmd.conf\fR 8 | .fi 9 | .SH "DESCRIPTION" 10 | The iwpmd.conf file provides configuration parameters for iwpmd. Parameters 11 | are in the form: param=value, and one per line. Parameters include: 12 | .P 13 | nl_sock_rbuf_size - The socket buffer size of the netlink socket used 14 | to communicate with the kernel port map client. The default is 400MB. 15 | .SH "EXAMPLES" 16 | nl_sock_rbuf_size=419430400 17 | .SH "FILES" 18 | @CMAKE_INSTALL_FULL_SYSCONFDIR@/iwpmd.conf 19 | .SH "SEE ALSO" 20 | iwpmd(8) 21 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/iwpmd/iwpmd.rules: -------------------------------------------------------------------------------- 1 | TAG+="systemd", ENV{ID_RDMA_IWARP}=="1", ENV{SYSTEMD_WANTS}+="iwpmd.service" 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/iwpmd/modules-iwpmd.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if iwpmd is to be run 2 | iw_cm 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/modules/infiniband.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if any InfiniBand device is installed 2 | # InfiniBand over IP netdevice 3 | ib_ipoib 4 | 5 | # Access to fabric management SMPs and GMPs from userspace. 6 | ib_umad 7 | 8 | # SCSI Remote Protocol target support 9 | # ib_srpt 10 | 11 | # ib_ucm provides the obsolete /dev/infiniband/ucm0 12 | # ib_ucm 13 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/modules/iwarp.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if any iWarp device is installed 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/modules/opa.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if any OmniPath Architecture device 2 | # is installed 3 | # Infiniband over IP netdevice 4 | ib_ipoib 5 | 6 | # Access to fabric management SMPs and GMPs from userspace. 7 | ib_umad 8 | 9 | # Omnipath Ethernet Virtual NIC netdevice 10 | opa_vnic 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/modules/rdma.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if any RDMA devices is installed 2 | # iSCSI over RDMA client support 3 | ib_iser 4 | 5 | # iSCSI over RDMA target support 6 | # ib_isert 7 | 8 | # User access to RDMA verbs (supports libibverbs) 9 | ib_uverbs 10 | 11 | # User access to RDMA connection management (supports librdmacm) 12 | rdma_ucm 13 | 14 | # RDS over RDMA support 15 | # rds_rdma 16 | 17 | # NFS over RDMA client support 18 | xprtrdma 19 | 20 | # NFS over RDMA server support 21 | svcrdma 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/modules/roce.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if any RDMA over Converged Ethernet 2 | # device is installed 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/persistent-ipoib.rules: -------------------------------------------------------------------------------- 1 | # This is a sample udev rules file that demonstrates how to get udev to 2 | # set the name of IPoIB interfaces to whatever you wish. There is a 3 | # 16 character limit on network device names. 4 | # 5 | # Important items to note: ATTR{type}=="32" is IPoIB interfaces, and the 6 | # ATTR{address} match must start with ?* and only reference the last 8 7 | # bytes of the address or else the address might not match the variable QPN 8 | # portion. 9 | # 10 | # Modern udev is case sensitive and all addresses need to be in lower case. 11 | # 12 | # ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="32", ATTR{address}=="?*00:02:c9:03:00:31:78:f2", NAME="mlx4_ib3" 13 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/rdma-hw.target.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RDMA Hardware 3 | Documentation=file:@CMAKE_INSTALL_FULL_DOCDIR@/udev.md 4 | StopWhenUnneeded=yes 5 | 6 | # Start the basic ULP RDMA kernel modules when RDMA hardware is detected (note 7 | # the rdma-load-modules@.service is already before this target) 8 | Wants=rdma-load-modules@rdma.service 9 | # Order after the standard network.target for compatibility with init.d 10 | # scripts that order after networking - this will mean RDMA is ready too. 11 | Before=network.target 12 | # We do not order rdma-hw before basic.target, units for daemons that use RDMA 13 | # have to manually order after rdma-hw.target 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/rdma-ulp-modules.rules: -------------------------------------------------------------------------------- 1 | ACTION=="remove", GOTO="rdma_ulp_modules_end" 2 | SUBSYSTEM!="infiniband", GOTO="rdma_ulp_modules_end" 3 | 4 | # Automatically load general RDMA ULP modules when RDMA hardware is installed 5 | TAG+="systemd", ENV{SYSTEMD_WANTS}+="rdma-hw.target" 6 | TAG+="systemd", ENV{ID_RDMA_INFINIBAND}=="1", ENV{SYSTEMD_WANTS}+="rdma-load-modules@infiniband.service" 7 | TAG+="systemd", ENV{ID_RDMA_IWARP}=="1", ENV{SYSTEMD_WANTS}+="rdma-load-modules@iwarp.service" 8 | TAG+="systemd", ENV{ID_RDMA_OPA}=="1", ENV{SYSTEMD_WANTS}+="rdma-load-modules@opa.service" 9 | TAG+="systemd", ENV{ID_RDMA_ROCE}=="1", ENV{SYSTEMD_WANTS}+="rdma-load-modules@roce.service" 10 | 11 | LABEL="rdma_ulp_modules_end" 12 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-boot/rdma-umad.rules: -------------------------------------------------------------------------------- 1 | SUBSYSTEM=="infiniband_mad", KERNEL=="*umad*", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/rdma/devices/$attr{ibdev}:$attr{port}/umad" 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/kernel-headers/kern-abi.c: -------------------------------------------------------------------------------- 1 | /* empty file for cmake */ 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | publish_headers(infiniband 2 | umad.h 3 | umad_cm.h 4 | umad_sa.h 5 | umad_sa_mcm.h 6 | umad_sm.h 7 | umad_str.h 8 | umad_types.h 9 | ) 10 | 11 | rdma_library(ibumad libibumad.map 12 | # See Documentation/versioning.md 13 | 3 3.0.${PACKAGE_VERSION} 14 | sysfs.c 15 | umad.c 16 | umad_str.c 17 | ) 18 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/libibumad.map: -------------------------------------------------------------------------------- 1 | /* Do not change this file without reading Documentation/versioning.md */ 2 | IBUMAD_1.0 { 3 | global: 4 | umad_init; 5 | umad_done; 6 | umad_get_cas_names; 7 | umad_get_ca_portguids; 8 | umad_open_port; 9 | umad_get_ca; 10 | umad_release_ca; 11 | umad_get_port; 12 | umad_release_port; 13 | umad_close_port; 14 | umad_get_mad; 15 | umad_get_issm_path; 16 | umad_size; 17 | umad_set_grh; 18 | umad_set_pkey; 19 | umad_get_pkey; 20 | umad_set_addr; 21 | umad_set_addr_net; 22 | umad_send; 23 | umad_recv; 24 | umad_poll; 25 | umad_get_fd; 26 | umad_register; 27 | umad_register2; 28 | umad_register_oui; 29 | umad_unregister; 30 | umad_status; 31 | umad_get_mad_addr; 32 | umad_debug; 33 | umad_addr_dump; 34 | umad_dump; 35 | umad_class_str; 36 | umad_method_str; 37 | umad_common_mad_status_str; 38 | umad_sa_mad_status_str; 39 | umad_attribute_str; 40 | local: *; 41 | }; 42 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_man_pages( 2 | umad_addr_dump.3 3 | umad_alloc.3 4 | umad_class_str.3 5 | umad_close_port.3 6 | umad_debug.3 7 | umad_dump.3 8 | umad_free.3 9 | umad_get_ca.3 10 | umad_get_ca_portguids.3 11 | umad_get_cas_names.3 12 | umad_get_fd.3 13 | umad_get_issm_path.3 14 | umad_get_mad.3 15 | umad_get_mad_addr.3 16 | umad_get_pkey.3 17 | umad_get_port.3 18 | umad_init.3.md 19 | umad_open_port.3 20 | umad_poll.3 21 | umad_recv.3 22 | umad_register.3 23 | umad_register2.3 24 | umad_register_oui.3 25 | umad_send.3 26 | umad_set_addr.3 27 | umad_set_addr_net.3 28 | umad_set_grh.3 29 | umad_set_grh_net.3 30 | umad_set_pkey.3 31 | umad_size.3 32 | umad_status.3 33 | umad_unregister.3 34 | ) 35 | rdma_alias_man_pages( 36 | umad_class_str.3 umad_attribute_str.3 37 | umad_class_str.3 umad_mad_status_str.3 38 | umad_class_str.3 umad_method_str.3 39 | umad_get_ca.3 umad_release_ca.3 40 | umad_get_port.3 umad_release_port.3 41 | umad_init.3 umad_done.3 42 | ) 43 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_alloc.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_ALLOC 3 "May 21, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_alloc \- allocate memory for umad buffers 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "void * umad_alloc(int " "num" ", size_t " "size"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_alloc() 15 | allocates memory for an array of 16 | .I num\fR 17 | umad buffers of 18 | .I size 19 | bytes\fR. 20 | Note that 21 | .I size\fR 22 | should include the 23 | .B umad_size() 24 | plus the length (MAD_BLOCK_SIZE for normal MADs or the length returned from 25 | .B umad_recv() 26 | for RMPP MADs). 27 | .SH "RETURN VALUE" 28 | .B umad_alloc() 29 | returns NULL if out of memory. 30 | .SH "SEE ALSO" 31 | .BR umad_free (3) 32 | .SH "AUTHOR" 33 | .TP 34 | Hal Rosenstock 35 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_close_port.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_OPEN_PORT 3 "May 11, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_close_port \- close InfiniBand device port for umad access 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_close_port(int " "portid" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_close_port() 15 | closes the port specified by the handle 16 | .I portid\fR. 17 | .SH "RETURN VALUE" 18 | .B umad_close_port() 19 | returns 0 on success, and a negative value on error. 20 | -EINVAL is returned if the 21 | .I portid\fR 22 | is not a handle to a valid (open) port. 23 | .SH "SEE ALSO" 24 | .BR umad_open_port (3) 25 | .SH "AUTHOR" 26 | .TP 27 | Hal Rosenstock 28 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_debug.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_DEBUG 3 "May 21, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_debug \- set debug level 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_debug(int " "level" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_debug() 15 | sets the umad library internal debug level to 16 | .I level\fR. 17 | The following 18 | debug levels are supported: 0 - no debug (the default), 19 | 1 - basic debug information, 2 - verbose debug information. Negative values are 20 | ignored in terms of set. Note that the current debug level can 21 | be queried by passing a negative value as 22 | .I level\fR. 23 | .SH "RETURN VALUE" 24 | .B umad_debug() 25 | returns the actual debug level. 26 | .SH "AUTHORS" 27 | .TP 28 | Hal Rosenstock 29 | .TP 30 | Dotan Barak 31 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_dump.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_DUMP 3 "May 17, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_dump \- dump umad buffer to stderr 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "void umad_dump(void " "*umad"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_dump() 15 | dumps the given 16 | .I umad\fR 17 | buffer to stderr. 18 | .SH "RETURN VALUE" 19 | .B umad_dump() 20 | returns no value. 21 | .SH "AUTHOR" 22 | .TP 23 | Hal Rosenstock 24 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_free.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_FREE 3 "May 17, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_free \- frees memory of umad buffers 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "void umad_free(void " "*umad"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_free() 15 | frees memory previously allocated with 16 | .B umad_alloc()\fR. 17 | .SH "RETURN VALUE" 18 | .B umad_free() 19 | returns no value. 20 | .SH "SEE ALSO" 21 | .BR umad_alloc (3) 22 | .SH "AUTHOR" 23 | .TP 24 | Hal Rosenstock 25 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_get_fd.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_GET_FD 3 "May 17, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_get_fd \- get the umad fd for the requested port 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_get_fd(int " "portid" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_get_fd() 15 | returns the umad fd for the port specified by 16 | .I portid\fR. 17 | .SH "RETURN VALUE" 18 | .B umad_get_fd() 19 | returns the fd for the 20 | .I portid\fR 21 | requested or -EINVAL if 22 | .I portid\fR 23 | is invalid. 24 | .SH "AUTHOR" 25 | .TP 26 | Hal Rosenstock 27 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_get_mad.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_GET_MAD 3 "May 21, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_get_mad \- get the MAD pointer of a umad buffer 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "void * umad_get_mad(void " "*umad"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_get_mad() 15 | returns a pointer to the MAD contained within the 16 | .I umad\fR 17 | buffer. 18 | .SH "RETURN VALUE" 19 | .B umad_get_mad() 20 | returns a pointer to the MAD contained within the supplied 21 | .I umad\fR 22 | buffer. 23 | .SH "AUTHOR" 24 | .TP 25 | Hal Rosenstock 26 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_get_pkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_GET_PKEY 3 "Jan 15, 2008" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_get_pkey \- get pkey index from umad buffer 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_get_pkey(void " "*umad"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_get_pkey() 15 | gets the pkey index from the specified 16 | .I umad\fR 17 | buffer. 18 | .SH "RETURN VALUE" 19 | .B umad_get_pkey() 20 | returns value of pkey index (or zero if pkey index is not supported by 21 | user_mad interface). 22 | .SH "AUTHOR" 23 | .TP 24 | Sasha Khapyorsky 25 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_set_pkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_SET_PKEY 3 "June 20, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_set_pkey \- set pkey index within umad buffer 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_set_pkey(void " "*umad" ", int " "pkey_index"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_set_pkey() 15 | sets the pkey index within the specified 16 | .I umad\fR 17 | buffer. 18 | .SH "RETURN VALUE" 19 | .B umad_set_pkey() 20 | returns 0 on success, and a negative value on an error. 21 | .SH "AUTHOR" 22 | .TP 23 | Hal Rosenstock 24 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_size.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_SIZE 3 "May 21, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_size \- get the size of umad buffer 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "size_t umad_size(void); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_size() 15 | returns the size of umad buffer (in bytes). 16 | .SH "RETURN VALUE" 17 | .B umad_size() 18 | returns the size of umad buffer (in bytes). 19 | .SH "AUTHOR" 20 | .TP 21 | Hal Rosenstock 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_status.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_STATUS 3 "May 17, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_status \- get the status of a umad buffer 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_status(void " "*umad" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_status() 15 | get the internal 16 | .I umad\fR 17 | status field. 18 | .SH "RETURN VALUE" 19 | After a packet is received, 20 | .B umad_status() 21 | returns 0 on a successful receive, or a non zero status. 22 | ETIMEDOUT means that the packet had 23 | a send-timeout indication. In this case, the transaction ID will be 24 | set to the TID of the original request. 25 | .SH "AUTHOR" 26 | .TP 27 | Hal Rosenstock 28 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/man/umad_unregister.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 3 | .\" 4 | .TH UMAD_UNREGISTER 3 "May 21, 2007" "OpenIB" "OpenIB Programmer\'s Manual" 5 | .SH "NAME" 6 | umad_unregister \- unregister umad agent 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int umad_unregister(int " "portid" ", int " "agentid"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B umad_unregister() 15 | unregisters the specified 16 | .I agentid\fR 17 | previously registered using 18 | .B umad_register() 19 | or 20 | .B umad_register_oui()\fR. 21 | .SH "RETURN VALUE" 22 | .B umad_unregister() 23 | returns 0 on success and negative value on error as follows: 24 | -EINVAL invalid port handle or agentid 25 | * (kernel error codes) 26 | .SH "SEE ALSO" 27 | .BR umad_register (3), 28 | .BR umad_register_oui (3) 29 | .SH "AUTHOR" 30 | .TP 31 | Hal Rosenstock 32 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibumad/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_test_executable(umad_reg2 umad_reg2_compat.c) 2 | target_link_libraries(umad_reg2 LINK_PRIVATE ibumad) 3 | 4 | rdma_test_executable(umad_register2 umad_register2.c) 5 | target_link_libraries(umad_register2 LINK_PRIVATE ibumad) 6 | 7 | rdma_test_executable(umad_sa_mcm_rereg_test umad_sa_mcm_rereg_test.c) 8 | target_link_libraries(umad_sa_mcm_rereg_test LINK_PRIVATE ibumad) 9 | 10 | rdma_test_executable(umad_compile_test umad_compile_test.c) 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibverbs/man/ibv_asyncwatch.1: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH IBV_ASYNCWATCH 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 3 | 4 | .SH NAME 5 | ibv_asyncwatch \- display asynchronous events 6 | 7 | .SH SYNOPSIS 8 | .B ibv_asyncwatch 9 | [\-d device] [-h] 10 | 11 | .SH DESCRIPTION 12 | .PP 13 | Display asynchronous events forwarded to userspace for an RDMA device. 14 | 15 | .SH OPTIONS 16 | 17 | .PP 18 | .TP 19 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 20 | use IB device \fIDEVICE\fR (default first device found) 21 | .TP 22 | \fB\-h\fR, \fB\-\-help\fR=\fIDEVICE\fR 23 | Print a help text and exit. 24 | 25 | .SH AUTHORS 26 | .TP 27 | Roland Dreier 28 | .RI < rolandd@cisco.com > 29 | .TP 30 | Eran Ben Elisha 31 | .RI < eranbe@mellanox.com > 32 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibverbs/man/ibv_devices.1: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH IBV_DEVICES 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 3 | 4 | .SH NAME 5 | ibv_devices \- list RDMA devices 6 | 7 | .SH SYNOPSIS 8 | .B ibv_devices 9 | 10 | .SH DESCRIPTION 11 | .PP 12 | List RDMA devices available for use from userspace. 13 | 14 | .SH SEE ALSO 15 | .BR ibv_devinfo (1) 16 | 17 | .SH AUTHORS 18 | .TP 19 | Roland Dreier 20 | .RI < rolandd@cisco.com > 21 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibverbs/man/ibv_devinfo.1: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH IBV_DEVINFO 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 3 | 4 | .SH NAME 5 | ibv_devinfo \- query RDMA devices 6 | 7 | .SH SYNOPSIS 8 | .B ibv_devinfo 9 | [\-d device] [\-i port] [\-l] [\-v] 10 | 11 | .SH DESCRIPTION 12 | .PP 13 | Print information about RDMA devices available for use from userspace. 14 | 15 | .SH OPTIONS 16 | 17 | .PP 18 | .TP 19 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 20 | use IB device \fIDEVICE\fR (default first device found) 21 | 22 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 23 | query port \fIPORT\fR (default all ports) 24 | 25 | \fB\-l\fR, \fB\-\-list\fR 26 | only list names of RDMA devices 27 | 28 | \fB\-v\fR, \fB\-\-verbose\fR 29 | print all available information about RDMA devices 30 | 31 | .SH SEE ALSO 32 | .BR ibv_devices (1) 33 | 34 | .SH AUTHORS 35 | .TP 36 | Dotan Barak 37 | .RI < dotanba@gmail.com > 38 | .TP 39 | Roland Dreier 40 | .RI < rolandd@cisco.com > 41 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibverbs/man/ibv_get_device_guid.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2006-10-31 3 | footer: libibverbs 4 | header: "Libibverbs Programmer's Manual" 5 | layout: page 6 | license: 'Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md' 7 | section: 3 8 | title: IBV_GET_DEVICE_GUID 9 | --- 10 | 11 | # NAME 12 | 13 | ibv_get_device_guid - get an RDMA device's GUID 14 | 15 | # SYNOPSIS 16 | 17 | ```c 18 | #include 19 | 20 | uint64_t ibv_get_device_guid(struct ibv_device *device); 21 | ``` 22 | 23 | # DESCRIPTION 24 | 25 | **ibv_get_device_name()** returns the Global Unique IDentifier (GUID) of the 26 | RDMA device *device*. 27 | 28 | # RETURN VALUE 29 | 30 | **ibv_get_device_guid()** returns the GUID of the device in network byte 31 | order. 32 | 33 | # SEE ALSO 34 | 35 | **ibv_get_device_list**(3), 36 | **ibv_get_device_name**(3), 37 | **ibv_open_device**(3) 38 | 39 | # AUTHOR 40 | 41 | Dotan Barak 42 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/libibverbs/man/ibv_get_device_name.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: ' 2006-10-31' 3 | footer: libibverbs 4 | header: "Libibverbs Programmer's Manual" 5 | layout: page 6 | license: 'Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md' 7 | section: 3 8 | title: IBV_GET_DEVICE_NAME 9 | --- 10 | 11 | # NAME 12 | 13 | ibv_get_device_name - get an RDMA device's name 14 | 15 | # SYNOPSIS 16 | 17 | ```c 18 | #include 19 | 20 | const char *ibv_get_device_name(struct ibv_device *device); 21 | ``` 22 | 23 | # DESCRIPTION 24 | 25 | **ibv_get_device_name()** returns a human-readable name associated with the 26 | RDMA device *device*. 27 | 28 | # RETURN VALUE 29 | 30 | **ibv_get_device_name()** returns a pointer to the device name, or NULL if the 31 | request fails. 32 | 33 | # SEE ALSO 34 | 35 | **ibv_get_device_guid**(3), 36 | **ibv_get_device_list**(3), 37 | **ibv_open_device**(3) 38 | 39 | # AUTHOR 40 | 41 | Dotan Barak 42 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/librspreload.map: -------------------------------------------------------------------------------- 1 | { 2 | /* FIXME: It is probably not a great idea to not tag these with the 3 | proper symbol version from glibc, at least if glibc ever changes 4 | the signature this will go sideways.. */ 5 | global: 6 | accept; 7 | bind; 8 | close; 9 | connect; 10 | dup2; 11 | fcntl; 12 | getpeername; 13 | getsockname; 14 | getsockopt; 15 | listen; 16 | poll; 17 | read; 18 | readv; 19 | recv; 20 | recvfrom; 21 | recvmsg; 22 | select; 23 | send; 24 | sendfile; 25 | sendmsg; 26 | sendto; 27 | setsockopt; 28 | shutdown; 29 | socket; 30 | write; 31 | writev; 32 | local: *; 33 | }; 34 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_ack_cm_event.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_ACK_CM_EVENT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_ack_cm_event \- Free a communication event. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "int" rdma_ack_cm_event 9 | .BI "(struct rdma_cm_event *" event ");" 10 | .SH ARGUMENTS 11 | .IP "event" 12 12 | Event to be released. 13 | .SH "DESCRIPTION" 14 | All events which are allocated by rdma_get_cm_event must be released, 15 | there should be a one-to-one correspondence between successful gets 16 | and acks. This call frees the event structure and any memory that it 17 | references. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "SEE ALSO" 22 | rdma_get_cm_event(3), rdma_destroy_id(3) 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_destroy_ep.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | 3 | .TH "RDMA_DESTROY_EP" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 4 | .SH NAME 5 | rdma_destroy_ep \- Release a communication identifier. 6 | .SH SYNOPSIS 7 | .B "#include " 8 | .P 9 | .B "void" rdma_destroy_ep 10 | .BI "(struct rdma_cm_id *" id ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | The communication identifier to destroy. 14 | .SH "DESCRIPTION" 15 | Destroys the specified rdma_cm_id and all associated resources 16 | .SH "NOTES" 17 | rdma_destroy_ep will automatically destroy any QP and SRQ associated with 18 | the rdma_cm_id. 19 | .SH "SEE ALSO" 20 | rdma_create_ep(3) 21 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_destroy_event_channel.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_DESTROY_EVENT_CHANNEL" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_event_channel \- Close an event communication channel. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_destroy_event_channel 9 | .BI "(struct rdma_event_channel *" channel ");" 10 | .SH ARGUMENTS 11 | .IP "channel" 12 12 | The communication channel to destroy. 13 | .SH "DESCRIPTION" 14 | Release all resources associated with an event channel and closes the 15 | associated file descriptor. 16 | .SH "RETURN VALUE" 17 | None 18 | .SH "NOTES" 19 | All rdma_cm_id's associated with the event channel must be destroyed, 20 | and all returned events must be acked before calling this function. 21 | .SH "SEE ALSO" 22 | rdma_create_event_channel(3), rdma_get_cm_event(3), rdma_ack_cm_event(3) 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_destroy_id.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_DESTROY_ID" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_id \- Release a communication identifier. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "int" rdma_destroy_id 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | The communication identifier to destroy. 13 | .SH "DESCRIPTION" 14 | Destroys the specified rdma_cm_id and cancels any outstanding 15 | asynchronous operation. 16 | .SH "RETURN VALUE" 17 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 18 | set to indicate the failure reason. 19 | .SH "NOTES" 20 | Users must free any associated QP with the rdma_cm_id before 21 | calling this routine and ack all related events. 22 | .SH "SEE ALSO" 23 | rdma_create_id(3), rdma_destroy_qp(3), rdma_ack_cm_event(3) 24 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_destroy_qp.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_DESTROY_QP" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_qp \- Deallocate a QP. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_destroy_qp 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Destroy a QP allocated on the rdma_cm_id. 15 | .SH "NOTES" 16 | Users must destroy any QP associated with an rdma_cm_id before 17 | destroying the ID. 18 | .SH "SEE ALSO" 19 | rdma_create_qp(3), rdma_destroy_id(3), ibv_destroy_qp(3) 20 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_destroy_srq.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_DESTROY_SRQ" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_srq \- Deallocate a SRQ. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_destroy_srq 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Destroy an SRQ allocated on the rdma_cm_id. 15 | .SH "RETURN VALUE" 16 | None 17 | .SH "NOTES" 18 | Users should destroy any SRQ associated with an rdma_cm_id before 19 | destroying the ID. 20 | .SH "SEE ALSO" 21 | rdma_create_srq(3), rdma_destroy_id(3), ibv_destroy_srq(3) 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_event_str.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_EVENT_STR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_event_str \- Returns a string representation of an rdma cm event. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "char *" rdma_event_str 9 | .BI "("enum rdma_cm_event_type " event ");" 10 | .SH ARGUMENTS 11 | .IP "event" 12 12 | Asynchronous event. 13 | .SH "DESCRIPTION" 14 | Returns a string representation of an asynchronous event. 15 | .SH "RETURN VALUE" 16 | Returns a pointer to a static character string corresponding to the event. 17 | .SH "SEE ALSO" 18 | rdma_get_cm_event(3) 19 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_free_devices.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_FREE_DEVICES" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_free_devices \- Frees the list of devices returned by rdma_get_devices. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_free_devices 9 | .BI "(struct ibv_context **" list ");" 10 | .SH ARGUMENTS 11 | .IP "list" 12 12 | List of devices returned from rdma_get_devices. 13 | .SH "DESCRIPTION" 14 | Frees the device array returned by rdma_get_devices. 15 | .SH "RETURN VALUE" 16 | None 17 | .SH "SEE ALSO" 18 | rdma_get_devices(3) 19 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_get_dst_port.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_GET_DST_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_get_dst_port \- Returns the remote port number of a bound rdma_cm_id. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "uint16_t" rdma_get_dst_port 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Returns the remote port number for an rdma_cm_id that has been bound to 15 | a remote address. 16 | .SH "RETURN VALUE" 17 | Returns the 16-bit port identifier associated with the peer endpoint. If 18 | the rdma_cm_id is not connected, the returned value is 0. 19 | .SH "SEE ALSO" 20 | rdma_connect(3), rdma_accept(3), rdma_get_cm_event(3), rdma_get_src_port(3), 21 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_get_local_addr.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_GET_LOCAL_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_get_local_addr \- Returns the local IP address of a bound rdma_cm_id. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "struct sockaddr *" rdma_get_local_addr 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Returns the local IP address for an rdma_cm_id that has been bound to 15 | a local device. 16 | .SH "RETURN VALUE" 17 | Returns a pointer to the local sockaddr address of the rdma_cm_id. If 18 | the rdma_cm_id is not bound to an address, the contents of the sockaddr 19 | structure will be set to all zeroes. 20 | .SH "SEE ALSO" 21 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_src_port(3), 22 | rdma_get_dst_port(3), rdma_get_peer_addr(3) 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_get_peer_addr.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_GET_PEER_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_get_peer_addr \- Returns the remote IP address of a bound rdma_cm_id. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "struct sockaddr *" rdma_get_peer_addr 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Returns the remote IP address associated with an rdma_cm_id. 15 | .SH "RETURN VALUE" 16 | Returns a pointer to the sockaddr address of the connected peer. If 17 | the rdma_cm_id is not connected, the contents of the sockaddr 18 | structure will be set to all zeroes. 19 | .SH "SEE ALSO" 20 | rdma_resolve_addr(3), rdma_get_src_port(3), rdma_get_dst_port(3), 21 | rdma_get_local_addr(3) 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/librdmacm/man/rdma_get_src_port.3: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH "RDMA_GET_SRC_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_get_src_port \- Returns the local port number of a bound rdma_cm_id. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "uint16_t" rdma_get_src_port 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .SH "DESCRIPTION" 14 | Returns the local port number for an rdma_cm_id that has been bound to 15 | a local address. 16 | .SH "RETURN VALUE" 17 | Returns the 16-bit port identifier associated with the local endpoint. If 18 | the rdma_cm_id is not bound to a port, the returned value is 0. 19 | .SH "SEE ALSO" 20 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_dst_port(3), 21 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 22 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/bnxt_re/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(bnxt_re 2 | db.c 3 | main.c 4 | memory.c 5 | verbs.c 6 | ) 7 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/cxgb3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(cxgb3 2 | cq.c 3 | iwch.c 4 | qp.c 5 | verbs.c 6 | ) 7 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/cxgb4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NO_STRICT_ALIASING_FLAGS}") 2 | 3 | rdma_provider(cxgb4 4 | cq.c 5 | dev.c 6 | qp.c 7 | verbs.c 8 | ) 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/hfi1verbs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(hfi1verbs 2 | hfiverbs.c 3 | verbs.c 4 | ) 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/hns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(hns 2 | hns_roce_u.c 3 | hns_roce_u_buf.c 4 | hns_roce_u_db.c 5 | hns_roce_u_hw_v1.c 6 | hns_roce_u_hw_v2.c 7 | hns_roce_u_verbs.c 8 | ) 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/i40iw/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(i40iw 2 | i40iw_uk.c 3 | i40iw_umain.c 4 | i40iw_uverbs.c 5 | ) 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ipathverbs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(ipathverbs 2 | ipathverbs.c 3 | verbs.c 4 | ) 5 | 6 | rdma_subst_install(FILES "truescale.conf.in" 7 | DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/modprobe.d/" 8 | RENAME "truescale.conf") 9 | install(FILES truescale-serdes.cmds 10 | DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}" 11 | PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) 12 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ipathverbs/dracut_check: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$hostonly" ]; then 4 | lspci -n 2>/dev/null | grep -q -i "1077\|1fc1" 5 | exit $? 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ipathverbs/dracut_install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | inst /etc/modprobe.d/truescale.conf 4 | inst /usr/libexec/truescale-serdes.cmds 5 | 6 | # All files needed by truescale-serdes.cmds need to be present here 7 | inst /sbin/lspci 8 | inst /bin/grep 9 | inst /bin/sed 10 | inst /usr/bin/logger 11 | inst /usr/sbin/dmidecode 12 | inst /bin/readlink 13 | inst /bin/echo 14 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ipathverbs/dracut_kmod: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | instmods ib_qib 4 | 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ipathverbs/truescale.conf.in: -------------------------------------------------------------------------------- 1 | install ib_qib modprobe -i ib_qib $CMDLINE_OPTS && @CMAKE_INSTALL_FULL_LIBEXECDIR@/truescale-serdes.cmds start 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_shared_provider(mlx4 libmlx4.map 2 | 1 1.0.${PACKAGE_VERSION} 3 | buf.c 4 | cq.c 5 | dbrec.c 6 | mlx4.c 7 | qp.c 8 | srq.c 9 | verbs.c 10 | ) 11 | 12 | publish_headers(infiniband 13 | mlx4dv.h 14 | ) 15 | 16 | install(FILES "mlx4.conf" DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/modprobe.d/") 17 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx4/libmlx4.map: -------------------------------------------------------------------------------- 1 | /* Export symbols should be added below according to 2 | Documentation/versioning.md document. */ 3 | MLX4_1.0 { 4 | global: 5 | mlx4dv_init_obj; 6 | mlx4dv_query_device; 7 | mlx4dv_create_qp; 8 | mlx4dv_set_context_attr; 9 | local: *; 10 | }; 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx4/man/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_man_pages( 2 | mlx4dv_init_obj.3 3 | mlx4dv_query_device.3 4 | mlx4dv.7 5 | ) 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx5/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(MLX5_DEBUG "FALSE" CACHE BOOL 2 | "Enable expensive runtime logging options for the mlx5 verbs provider") 3 | if (MLX5_DEBUG) 4 | add_definitions("-DMLX5_DEBUG") 5 | endif() 6 | 7 | set(MLX5_MW_DEBUG "FALSE" CACHE BOOL 8 | "Enable extra validation of memory windows for the mlx5 verbs provider") 9 | if (MLX5_MW_DEBUG) 10 | add_definitions("-DMW_DEBUG") 11 | endif() 12 | 13 | rdma_shared_provider(mlx5 libmlx5.map 14 | 1 1.5.${PACKAGE_VERSION} 15 | buf.c 16 | cq.c 17 | dbrec.c 18 | mlx5.c 19 | qp.c 20 | srq.c 21 | verbs.c 22 | ) 23 | 24 | publish_headers(infiniband 25 | ../../kernel-headers/rdma/mlx5_user_ioctl_verbs.h 26 | mlx5_api.h 27 | mlx5dv.h 28 | ) 29 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx5/libmlx5.map: -------------------------------------------------------------------------------- 1 | /* Export symbols should be added below according to 2 | Documentation/versioning.md document. */ 3 | MLX5_1.0 { 4 | global: 5 | mlx5dv_query_device; 6 | mlx5dv_init_obj; 7 | local: *; 8 | }; 9 | 10 | MLX5_1.1 { 11 | global: 12 | mlx5dv_create_cq; 13 | } MLX5_1.0; 14 | 15 | MLX5_1.2 { 16 | global: 17 | mlx5dv_init_obj; 18 | mlx5dv_set_context_attr; 19 | } MLX5_1.1; 20 | 21 | MLX5_1.3 { 22 | global: 23 | mlx5dv_create_qp; 24 | mlx5dv_create_wq; 25 | } MLX5_1.2; 26 | 27 | MLX5_1.4 { 28 | global: 29 | mlx5dv_get_clock_info; 30 | } MLX5_1.3; 31 | 32 | MLX5_1.5 { 33 | global: 34 | mlx5dv_create_flow_action_esp; 35 | } MLX5_1.4; 36 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mlx5/man/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_man_pages( 2 | mlx5dv_flow_action_esp.3.md 3 | mlx5dv_get_clock_info.3 4 | mlx5dv_init_obj.3 5 | mlx5dv_query_device.3 6 | mlx5dv_ts_to_ns.3 7 | mlx5dv.7 8 | ) 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mthca/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(mthca 2 | ah.c 3 | buf.c 4 | cq.c 5 | memfree.c 6 | mthca.c 7 | qp.c 8 | srq.c 9 | verbs.c 10 | ) 11 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/mthca/doorbell.h: -------------------------------------------------------------------------------- 1 | /* GPLv2 or OpenIB.org BSD (MIT) See COPYING file */ 2 | #ifndef DOORBELL_H 3 | #define DOORBELL_H 4 | 5 | #include 6 | #include "mthca.h" 7 | 8 | static inline void mthca_write64(uint32_t val[2], void *reg) 9 | { 10 | uint64_t doorbell = (((uint64_t)val[0]) << 32) | val[1]; 11 | mmio_write64_be(reg, htobe64(doorbell)); 12 | } 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/nes/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(nes 2 | nes_umain.c 3 | nes_uverbs.c 4 | ) 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ocrdma/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(ocrdma 2 | ocrdma_main.c 3 | ocrdma_verbs.c 4 | ) 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/ocrdma/Changelog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma-core/providers/ocrdma/Changelog -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/qedr/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(qedr 2 | qelr_main.c 3 | qelr_verbs.c 4 | qelr_chain.c 5 | ) 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/rxe/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(rxe 2 | rxe.c 3 | ) 4 | rdma_subst_install(FILES "rxe_cfg.in" 5 | RENAME "rxe_cfg" 6 | DESTINATION "${CMAKE_INSTALL_BINDIR}" 7 | PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE 8 | ) 9 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/rxe/man/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_man_pages( 2 | rxe.7 3 | rxe_cfg.8 4 | ) 5 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/providers/vmw_pvrdma/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | rdma_provider(vmw_pvrdma 2 | cq.c 3 | pvrdma_main.c 4 | qp.c 5 | verbs.c 6 | ) 7 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/rdma-ndd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # COPYRIGHT (c) 2016 Intel Corporation. 2 | # Licensed under BSD (MIT variant) or GPLv2. See COPYING. 3 | 4 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") 5 | 6 | rdma_sbin_executable(rdma-ndd 7 | rdma-ndd.c 8 | ) 9 | 10 | target_link_libraries(rdma-ndd LINK_PRIVATE 11 | ${SYSTEMD_LIBRARIES} 12 | ${UDEV_LIBRARIES} 13 | ) 14 | 15 | # FIXME Autogenerate from the .rst 16 | rdma_man_pages( 17 | rdma-ndd.8.in 18 | ) 19 | 20 | install(FILES "rdma-ndd.rules" 21 | RENAME "60-rdma-ndd.rules" 22 | DESTINATION "${CMAKE_INSTALL_UDEV_RULESDIR}") 23 | 24 | rdma_subst_install(FILES "rdma-ndd.service.in" 25 | DESTINATION "${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}" 26 | RENAME "rdma-ndd.service") 27 | 28 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/rdma-ndd/rdma-ndd.rules: -------------------------------------------------------------------------------- 1 | # If an InfiniBand/RDMA device is installed with a writable node_description 2 | # sysfs then start rdma-ndd to keep it up to date 3 | SUBSYSTEM=="infiniband", TAG+="systemd", ATTRS{node_desc}=="*", ENV{SYSTEMD_WANTS}+="rdma-ndd.service" 4 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/rdma-ndd/rdma-ndd.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RDMA Node Description Daemon 3 | Documentation=man:rdma-ndd 4 | StopWhenUnneeded=yes 5 | # rdma-ndd is a kernel support program and needs to run as early as possible, 6 | # before the network link is brought up, and before an external manager tries 7 | # to read the local node description. 8 | DefaultDependencies=no 9 | Before=sysinit.target 10 | # Do not execute concurrently with an ongoing shutdown (required for DefaultDependencies=no) 11 | Conflicts=shutdown.target 12 | Before=shutdown.target 13 | # Networking, particularly link up, should not happen until ndd is ready 14 | Wants=network-pre.target 15 | Before=network-pre.target 16 | # rdma-hw is not ready until ndd is running 17 | Before=rdma-hw.target 18 | 19 | [Service] 20 | Type=notify 21 | Restart=always 22 | ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/rdma-ndd --systemd 23 | 24 | # rdma-ndd is automatically wanted by udev when an RDMA device with a node description is present 25 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/redhat/rdma.conf: -------------------------------------------------------------------------------- 1 | # Load IPoIB 2 | IPOIB_LOAD=yes 3 | # Load SRP (SCSI Remote Protocol initiator support) module 4 | SRP_LOAD=yes 5 | # Load SRPT (SCSI Remote Protocol target support) module 6 | SRPT_LOAD=yes 7 | # Load iSER (iSCSI over RDMA initiator support) module 8 | ISER_LOAD=yes 9 | # Load iSERT (iSCSI over RDMA target support) module 10 | ISERT_LOAD=yes 11 | # Load RDS (Reliable Datagram Service) network protocol 12 | RDS_LOAD=no 13 | # Load NFSoRDMA client transport module 14 | XPRTRDMA_LOAD=yes 15 | # Load NFSoRDMA server transport module 16 | SVCRDMA_LOAD=no 17 | # Load Tech Preview device driver modules 18 | TECH_PREVIEW_LOAD=no 19 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/redhat/rdma.mlx4.sys.modprobe: -------------------------------------------------------------------------------- 1 | # WARNING! - This file is overwritten any time the rdma rpm package is 2 | # updated. Please do not make any changes to this file. Instead, make 3 | # changes to the mlx4.conf file. It's contents are preserved if they 4 | # have been changed from the default values. 5 | install mlx4_core /sbin/modprobe --ignore-install mlx4_core $CMDLINE_OPTS && (if [ -f /usr/libexec/mlx4-setup.sh -a -f /etc/rdma/mlx4.conf ]; then /usr/libexec/mlx4-setup.sh < /etc/rdma/mlx4.conf; fi; /sbin/modprobe mlx4_en; if /sbin/modinfo mlx4_ib > /dev/null 2>&1; then /sbin/modprobe mlx4_ib; fi) 6 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/redhat/rdma.modules-setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | check() { 4 | [ -n "$hostonly" -a -c /sys/class/infiniband_verbs/uverbs0 ] && return 0 5 | [ -n "$hostonly" ] && return 255 6 | return 0 7 | } 8 | 9 | depends() { 10 | return 0 11 | } 12 | 13 | install() { 14 | inst /etc/rdma/rdma.conf 15 | inst /etc/rdma/mlx4.conf 16 | inst /etc/rdma/sriov-vfs 17 | inst /usr/libexec/rdma-init-kernel 18 | inst /usr/libexec/mlx4-setup.sh 19 | inst /usr/libexec/rdma-set-sriov-vf 20 | inst /usr/lib/modprobe.d/libmlx4.conf 21 | inst_multiple lspci setpci awk sleep 22 | inst_multiple -o /etc/modprobe.d/mlx4.conf 23 | inst_rules 98-rdma.rules 70-persistent-ipoib.rules 24 | } 25 | 26 | installkernel() { 27 | hostonly='' instmods =drivers/infiniband =drivers/net/ethernet/mellanox =drivers/net/ethernet/chelsio =drivers/net/ethernet/cisco =drivers/net/ethernet/emulex =drivers/target 28 | hostonly='' instmods crc-t10dif crct10dif_common 29 | } 30 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/redhat/rdma.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Initialize the iWARP/InfiniBand/RDMA stack in the kernel 3 | Documentation=file:/etc/rdma/rdma.conf 4 | RefuseManualStop=true 5 | DefaultDependencies=false 6 | Conflicts=emergency.target emergency.service 7 | Before=network.target remote-fs-pre.target 8 | 9 | [Service] 10 | Type=oneshot 11 | RemainAfterExit=yes 12 | ExecStart=/usr/libexec/rdma-init-kernel 13 | 14 | [Install] 15 | WantedBy=sysinit.target 16 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/redhat/rdma.udev-rules: -------------------------------------------------------------------------------- 1 | # We list all the various kernel modules that drive hardware in the 2 | # InfiniBand stack (and a few in the network stack that might not actually 3 | # be RDMA capable, but we don't know that at this time and it's safe to 4 | # enable the IB stack, so do so unilaterally) and on load of any of that 5 | # hardware, we trigger the rdma.service load in systemd 6 | 7 | SUBSYSTEM=="module", KERNEL=="cxgb*", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 8 | SUBSYSTEM=="module", KERNEL=="ib_*", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 9 | SUBSYSTEM=="module", KERNEL=="mlx*", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 10 | SUBSYSTEM=="module", KERNEL=="iw_*", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 11 | SUBSYSTEM=="module", KERNEL=="be2net", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 12 | SUBSYSTEM=="module", KERNEL=="enic", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="rdma.service" 13 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/ibsrpdm.1: -------------------------------------------------------------------------------- 1 | .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 | .TH IBSRPDM 1 "August 30, 2005" "OpenFabrics" "USER COMMANDS" 3 | 4 | .SH NAME 5 | ibsrpdm \- Discover SRP targets on an InfiniBand Fabric 6 | 7 | .SH SYNOPSIS 8 | .B ibsrpdm [\fIOPTIONS\fB] 9 | 10 | .SH DESCRIPTION 11 | .PP 12 | List InfiniBand SCSI RDMA Protocol (SRP) targets on an IB fabric. 13 | 14 | .SH OPTIONS 15 | 16 | .PP 17 | .TP 18 | \fB\-c\fR 19 | Generate output suitable for piping directly to a 20 | /sys/class/infiniband_srp/srp\-\-/add_target file 21 | .TP 22 | \fB\-d\fR \fIDEVICE\fR 23 | Use device file \fIDEVICE\fR (default /dev/infiniband/umad0) 24 | .TP 25 | \fB\-k\fR \fIP_KEY\fR 26 | Use InfiniBand partition key \fIP_KEY\fR (default 0xffff) 27 | .TP 28 | \fB\-v\fR 29 | Print more verbose output 30 | 31 | .SH SEE ALSO 32 | .BR srp_daemon (1) 33 | 34 | .SH AUTHORS 35 | .TP 36 | Roland Dreier 37 | .RI < roland@kernel.org > 38 | 39 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/modules-srp_daemon.conf: -------------------------------------------------------------------------------- 1 | # These modules are loaded by the system if srp_daemon is to be run 2 | ib_srp 3 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/srp_daemon.conf: -------------------------------------------------------------------------------- 1 | ## This is an example rules configuration file for srp_daemon. 2 | ## 3 | #This is a comment 4 | ## disallow the following dgid 5 | #d dgid=fe800000000000000002c90200402bd5 6 | ## allow target with the following ioc_guid 7 | #a ioc_guid=00a0b80200402bd7 8 | ## allow target with the following pkey 9 | #a pkey=ffff 10 | ## allow target with the following id_ext and ioc_guid 11 | #a id_ext=200500A0B81146A1,ioc_guid=00a0b80200402bef 12 | ## disallow all the rest 13 | #d 14 | ## 15 | ## Here is another example: 16 | ## 17 | ## Allow all targets and set queue size to 128. 18 | # a queue_size=128,max_cmd_per_lun=128 19 | 20 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/srp_daemon.rules: -------------------------------------------------------------------------------- 1 | SUBSYSTEM=="infiniband_mad", KERNEL=="*umad*", PROGRAM=="/bin/systemctl show srp_daemon -p ActiveState", RESULT=="ActiveState=active", ENV{SYSTEMD_WANTS}+="srp_daemon_port@$attr{ibdev}:$attr{port}.service" 2 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/srp_daemon.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Daemon that discovers and logs in to SRP target systems 3 | Documentation=man:srp_daemon file:/etc/srp_daemon.conf 4 | DefaultDependencies=false 5 | Conflicts=emergency.target emergency.service 6 | Before=remote-fs-pre.target 7 | 8 | [Service] 9 | Type=oneshot 10 | RemainAfterExit=yes 11 | ExecStart=@CMAKE_INSTALL_FULL_LIBEXECDIR@/srp_daemon/start_on_all_ports 12 | MemoryDenyWriteExecute=yes 13 | PrivateTmp=yes 14 | ProtectHome=yes 15 | ProtectKernelModules=yes 16 | RestrictRealtime=yes 17 | 18 | [Install] 19 | WantedBy=remote-fs-pre.target 20 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/srp_daemon/start_on_all_ports: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for p in /sys/class/infiniband/*/ports/*; do 4 | [ -e "$p" ] || continue 5 | p=${p#/sys/class/infiniband/} 6 | nohup /bin/systemctl start "srp_daemon_port@${p/\/ports\//:}" &/dev/null & 7 | done 8 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/suse/rdma.modules-setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | check() { 4 | [ -n "$hostonly" -a -c /sys/class/infiniband_verbs/uverbs0 ] && return 0 5 | [ -n "$hostonly" ] && return 255 6 | return 0 7 | } 8 | 9 | depends() { 10 | return 0 11 | } 12 | 13 | install() { 14 | inst /etc/rdma/mlx4.conf 15 | inst /etc/rdma/sriov-vfs 16 | inst /usr/lib/mlx4-setup.sh 17 | inst /usr/lib/rdma-set-sriov-vf 18 | inst /usr/lib/modprobe.d/50-libmlx4.conf 19 | inst_multiple lspci setpci sleep 20 | inst_multiple -o /etc/modprobe.d/mlx4.conf 21 | inst_rules 98-rdma-sriov.rules 70-persistent-ipoib.rules 22 | } 23 | 24 | installkernel() { 25 | hostonly='' instmods =drivers/infiniband =drivers/net/ethernet/mellanox =drivers/net/ethernet/chelsio =drivers/net/ethernet/cisco =drivers/net/ethernet/emulex =drivers/target 26 | hostonly='' instmods crc-t10dif crct10dif_common 27 | } 28 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/suse/rdma.sriov-rules: -------------------------------------------------------------------------------- 1 | ACTION=="remove", GOTO="rdma_sriov_end" 2 | SUBSYSTEM!="infiniband", GOTO="rdma_sriov_end" 3 | 4 | # Automatically load general RDMA ULP modules when RDMA hardware is installed 5 | TAG+="systemd", ENV{ID_RDMA_INFINIBAND}=="1", ENV{SYSTEMD_WANTS}+="rdma-sriov.service" 6 | 7 | LABEL="rdma_sriov_end" 8 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/suse/rdma.sriov-service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Initialize SRIOV for RDMA devices 3 | RefuseManualStop=true 4 | DefaultDependencies=false 5 | Conflicts=emergency.target emergency.service 6 | # Partially support distro network setup scripts that try to run after hardware is configured. 7 | # Run them after any SRIOV devices have been created 8 | Wants=network-pre.target 9 | Before=network-pre.target 10 | # RDMA is not ready until all SRIOV devices are created 11 | Before=rdma-hw.target 12 | 13 | [Service] 14 | Type=oneshot 15 | RemainAfterExit=yes 16 | ExecStart=/usr/lib/rdma-set-sriov-vf 17 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/util/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | publish_internal_headers(util 2 | compiler.h 3 | symver.h 4 | util.h 5 | ) 6 | 7 | set(C_FILES 8 | util.c) 9 | 10 | if (HAVE_COHERENT_DMA) 11 | publish_internal_headers(util 12 | mmio.h 13 | udma_barrier.h 14 | ) 15 | 16 | set(C_FILES ${C_FILES} 17 | mmio.c 18 | ) 19 | set_source_files_properties(mmio.c PROPERTIES COMPILE_FLAGS "${SSE_FLAGS}") 20 | endif() 21 | 22 | add_library(rdma_util STATIC ${C_FILES}) 23 | add_library(rdma_util_pic STATIC ${C_FILES}) 24 | set_property(TARGET rdma_util_pic PROPERTY POSITION_INDEPENDENT_CODE TRUE) 25 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/util/util.c: -------------------------------------------------------------------------------- 1 | /* GPLv2 or OpenIB.org BSD (MIT) See COPYING file */ 2 | #include 3 | #include 4 | #include 5 | 6 | int set_fd_nonblock(int fd, bool nonblock) 7 | { 8 | int val; 9 | 10 | val = fcntl(fd, F_GETFL); 11 | if (val == -1) 12 | return -1; 13 | 14 | if (nonblock) 15 | val |= O_NONBLOCK; 16 | else 17 | val &= ~(unsigned int)(O_NONBLOCK); 18 | 19 | if (fcntl(fd, F_SETFL, val) == -1) 20 | return -1; 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma-core/util/util.h: -------------------------------------------------------------------------------- 1 | /* GPLv2 or OpenIB.org BSD (MIT) See COPYING file */ 2 | #ifndef UTIL_UTIL_H 3 | #define UTIL_UTIL_H 4 | 5 | #include 6 | #include 7 | 8 | /* Return true if the snprintf succeeded, false if there was truncation or 9 | * error */ 10 | static inline bool __good_snprintf(size_t len, int rc) 11 | { 12 | return (rc < len && rc >= 0); 13 | } 14 | 15 | #define check_snprintf(buf, len, fmt, ...) \ 16 | __good_snprintf(len, snprintf(buf, len, fmt, ##__VA_ARGS__)) 17 | 18 | /* a CMP b. See also the BSD macro timercmp(). */ 19 | #define ts_cmp(a, b, CMP) \ 20 | (((a)->tv_sec == (b)->tv_sec) ? \ 21 | ((a)->tv_nsec CMP (b)->tv_nsec) : \ 22 | ((a)->tv_sec CMP (b)->tv_sec)) 23 | 24 | int set_fd_nonblock(int fd, bool nonblock); 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /libfs/lib/rdma/Makefile: -------------------------------------------------------------------------------- 1 | CC = gcc #-D_GNU_SOURCE # C compiler 2 | #CFLAGS = -fPIC -Wall -Wextra -O2 -g # C flags 3 | CFLAGS = -fPIC -O2 -g 4 | CFLAGS += -I../rdma-core/build/include 5 | LDFLAGS = -shared # linking flags 6 | 7 | RM = rm -f # rm command 8 | TARGET_LIB = librdma.so # target lib 9 | SRCS = agent.c core_ch.c rdma_ch.c shmem_ch.c verbs.c mr.c messaging.c rpc.c utils.c # source files 10 | OBJS = $(SRCS:.c=.o) 11 | 12 | #CPPFLAGS += -DSANITY_CHECK 13 | #CPPFLAGS += -DDEBUG 14 | CPPFLAGS += -DIBV_RATE_LIMITER 15 | CPPFLAGS += -DIBV_WRAPPER_INLINE 16 | CPPFLAGS += -D_GNU_SOURCE 17 | CPPFLAGS += -fvisibility=default 18 | 19 | LDFLAGS += -Wl,-rpath=../rdma-core/build/lib -L../rdma-core/build/lib 20 | LDLIBS = -lrdmacm -libverbs -lpthread -lrt 21 | 22 | .PHONY: all 23 | all: ${TARGET_LIB} 24 | 25 | $(TARGET_LIB): $(OBJS) 26 | $(CC) -g -o $@ $^ ${LDFLAGS} ${LDLIBS} 27 | 28 | #$(SRCS:.c=.d):%.d:%.c 29 | # $(CC) $(CFLAGS) -MM $< >$@ 30 | 31 | #include $(SRCS:.c=.d) 32 | 33 | .PHONY: clean 34 | clean: 35 | ${RM} ${TARGET_LIB} ${OBJS} 36 | 37 | -------------------------------------------------------------------------------- /libfs/lib/rdma/mr.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_MR_H 2 | #define RDMA_MR_H 3 | 4 | #include "common.h" 5 | #include "rdma_ch.h" 6 | 7 | //memory region state 8 | int mr_all_synced(struct conn_context *ctx); 9 | int mr_all_recv(struct conn_context *ctx); 10 | int mr_all_sent(struct conn_context *ctx); 11 | int mr_local_ready(struct conn_context *ctx, int mr_id); 12 | int mr_remote_ready(struct conn_context *ctx, int mr_id); 13 | int mr_next_to_sync(struct conn_context *ctx); 14 | void mr_register(struct conn_context *ctx, struct mr_context *mrs, int num_mrs, int msg_size); 15 | void mr_prepare_msg(struct conn_context *ctx, int buffer, int msg_type); 16 | uint64_t mr_local_addr(int sockfd, int mr_id); 17 | uint64_t mr_remote_addr(int sockfd, int mr_id); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /libfs/lib/rdma/rpc.h: -------------------------------------------------------------------------------- 1 | #ifndef RPC_H 2 | #define RPC_H 3 | 4 | #include "rdma_ch.h" 5 | #include "verbs.h" 6 | 7 | // -- messaging wrappers 8 | void MP_SEND_MSG_SYNC(int sockfd, int buffer_id, int solicit); 9 | uint32_t MP_SEND_MSG_ASYNC(int sockfd, int buffer_id, int solicit); 10 | 11 | // -- msg waiting 12 | void MP_AWAIT_RESPONSE(int sockfd, uint32_t app_id); 13 | void MP_AWAIT_WORK_COMPLETION(int sockfd, uint32_t wr_id); 14 | void MP_AWAIT_PENDING_WORK_COMPLETIONS(int sockfd); 15 | 16 | // -- buffer locks 17 | //public 18 | int MP_ACQUIRE_BUFFER(int sockfd, struct app_context ** ptr); 19 | //private 20 | int _mp_acquire_buffer(int sockfd, void ** ptr, int user); 21 | void notify_response(struct conn_context *ctx, uint32_t app_id); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile template for shared library 2 | 3 | CC = gcc -g -D_GNU_SOURCE # C compiler 4 | RDMA_DIR := $(abspath $(CURDIR)/..) 5 | NVML_DIR := $(abspath $(CURDIR)/../../nvml/src) 6 | INCLUDES := -I$(RDMA_DIR) -I. 7 | 8 | LIBS = -L$(RDMA_DIR) -lrdma -Wl,-rpath=$(abspath $(RDMA_DIR)) -L$(NVML_DIR)/nondebug -lpmem -Wl,-rpath=$(abspath $(NVML_DIR)/nondebug) -lm -lrt 9 | INCLUDES := $(addprefix -I,src/ $(RDMA_CORE_DIR)/build/include $(RDMA_DIR) $(NVML_DIR)/include) 10 | 11 | RM = rm -f # rm command 12 | #SRCS = master_sync.c slave_sync.c master_passive.c slave_passive.c # source files 13 | DEPS = time_stat.c 14 | #SRCS = master_sync.c slave_passive.c rpc_client.c rpc_server.c # FIXME: tempoarily removing some srcs 15 | SRCS = rpc_client.c rpc_server.c 16 | OBJS = $(SRCS:.c=.o) 17 | OBJS += $(DEPS:.c=.o) 18 | BIN = $(SRCS:.c=) 19 | 20 | .PHONY: clean 21 | 22 | all: $(BIN) 23 | 24 | $(BIN):$(OBJS) 25 | $(CC) $@.o time_stat.o ${LDFLAGS} ${LIBS} -o $@ 26 | 27 | %.o: %.c 28 | $(CC) $(INCLUDES) -c $(CFLAGS) -o $@ $< 29 | 30 | clean: 31 | rm -f $(OBJS) $(BIN) 32 | -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/master_p2p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/master_p2p -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/master_passive: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/master_passive -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/rawbench_lat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/rawbench_lat -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/rpc_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/rpc_client -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/rpc_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/rpc_server -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/slave_p2p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/slave_p2p -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/slave_sync: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ut-osa/assise/c191f20b26a86bef79bb8c943b33c0c75e17c802/libfs/lib/rdma/tests/slave_sync -------------------------------------------------------------------------------- /libfs/lib/rdma/tests/time_stat.h: -------------------------------------------------------------------------------- 1 | #ifndef TIME_STAT_H 2 | #define TIME_STAT_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | struct time_stats { 9 | struct timeval start; 10 | //struct timespec start; 11 | int n, count; 12 | double* time_v; 13 | }; 14 | 15 | void time_stats_init(struct time_stats*, int); 16 | void time_stats_start(struct time_stats*); 17 | void time_stats_stop(struct time_stats*); 18 | void time_stats_print(struct time_stats*, char*); 19 | double time_stats_get_avg(struct time_stats*); 20 | 21 | #endif 22 | 23 | -------------------------------------------------------------------------------- /libfs/lib/rdma/utils.c: -------------------------------------------------------------------------------- 1 | #include "utils.h" 2 | 3 | unsigned int g_seed; 4 | 5 | __attribute__((visibility ("hidden"))) 6 | void mp_die(const char *reason) 7 | { 8 | fprintf(stderr, "%s [error code: %d]\n", reason, errno); 9 | exit(EXIT_FAILURE); 10 | } 11 | -------------------------------------------------------------------------------- /libfs/src/build_tag.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | rm -rf cscope.* 4 | ctags -R . 5 | 6 | PWD=`pwd`\/; 7 | find -L `pwd` \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' -o -name '*.java' -o -name '*.jl' -o -name '*.py' \) -exec realpath {} \; -print > tmp.files 8 | cat tmp.files | grep -v kernfs | uniq > cscope.files 9 | rm -rf tmp.files 10 | cscope -bR 11 | -------------------------------------------------------------------------------- /libfs/src/concurrency/thread.c: -------------------------------------------------------------------------------- 1 | #include "global/mem.h" 2 | #include "mlfs/mlfs_user.h" 3 | #include "concurrency/thread.h" 4 | #include "filesystem/shared.h" 5 | 6 | #include 7 | 8 | __thread struct logheader_meta tls_loghdr_meta; 9 | 10 | struct logheader_meta *get_loghdr_meta(void) 11 | { 12 | return &tls_loghdr_meta; 13 | } 14 | 15 | unsigned long mlfs_create_thread(void *(*entry_point)(void *), volatile int* done) 16 | { 17 | pthread_t thread_id; 18 | 19 | if (pthread_create(&thread_id, NULL, entry_point, (void*)done)) { 20 | perror("Thread create "); 21 | exit(-1); 22 | } 23 | 24 | return thread_id; 25 | } 26 | -------------------------------------------------------------------------------- /libfs/src/concurrency/thread.h: -------------------------------------------------------------------------------- 1 | #ifndef _THREAD_H_ 2 | #define _THREAD_H_ 3 | 4 | struct logheader_meta *get_loghdr_meta(void); 5 | 6 | unsigned long mlfs_create_thread(void *(*entry_point)(void *), 7 | volatile int*); 8 | #endif 9 | -------------------------------------------------------------------------------- /libfs/src/distributed/posix_wrapper.h: -------------------------------------------------------------------------------- 1 | #include "filesystem/shared.h" 2 | 3 | #ifdef LIBFS 4 | #include "filesystem/fs.h" 5 | #endif 6 | 7 | #ifndef _POSIX_WRAPPER_H_ 8 | #define _POSIX_WRAPPER_H_ 9 | 10 | int mlfs_rpc_read(int fd, struct mlfs_reply *reply, size_t count); 11 | int mlfs_rpc_pread64(int fd, struct mlfs_reply *reply, size_t count, loff_t off); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libfs/src/filesystem/extents.c: -------------------------------------------------------------------------------- 1 | ../../../kernfs/extents.c -------------------------------------------------------------------------------- /libfs/src/filesystem/extents.h: -------------------------------------------------------------------------------- 1 | ../../../kernfs/extents.h -------------------------------------------------------------------------------- /libfs/src/filesystem/extents_bh.c: -------------------------------------------------------------------------------- 1 | ../../../kernfs/extents_bh.c -------------------------------------------------------------------------------- /libfs/src/filesystem/extents_bh.h: -------------------------------------------------------------------------------- 1 | ../../../kernfs/extents_bh.h -------------------------------------------------------------------------------- /libfs/src/filesystem/mlfs_crc32.c: -------------------------------------------------------------------------------- 1 | ../../../kernfs/mlfs_crc32.c -------------------------------------------------------------------------------- /libfs/src/filesystem/slru.c: -------------------------------------------------------------------------------- 1 | ../../../kernfs/filesystem/slru.c -------------------------------------------------------------------------------- /libfs/src/filesystem/slru.h: -------------------------------------------------------------------------------- 1 | ../../../kernfs/filesystem/slru.h -------------------------------------------------------------------------------- /libfs/src/filesystem/stat.h: -------------------------------------------------------------------------------- 1 | #ifndef _STAT_H_ 2 | #define _STAT_H_ 3 | 4 | #include "global/global.h" 5 | 6 | struct fs_stat { 7 | short type; // Type of file 8 | int dev; // File system's disk device id 9 | uint32_t ino; // Inode number 10 | short nlink; // Number of links to file 11 | uint32_t size; // Size of file in bytes 12 | 13 | mlfs_time_t mtime; 14 | mlfs_time_t ctime; 15 | mlfs_time_t atime; 16 | }; 17 | 18 | static inline void mlfs_get_time(mlfs_time_t *t) 19 | { 20 | //gettimeofday(t, NULL); 21 | return; 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /libfs/src/global/fcntl.h: -------------------------------------------------------------------------------- 1 | #define O_RDONLY 0x000 2 | #define O_WRONLY 0x001 3 | #define O_RDWR 0x002 4 | #define O_CREATE 0x200 5 | -------------------------------------------------------------------------------- /libfs/src/global/global.c: -------------------------------------------------------------------------------- 1 | #include "global/global.h" 2 | 3 | /* 4 | uint g_n_devices = 5; 5 | uint g_root_dev = 1; 6 | uint g_max_open_files = 100; 7 | uint g_block_size_bytes = 4096; 8 | uint g_max_blocks_per_operation = 800; 9 | uint g_log_size_blks = 4000; 10 | uint g_fs_size_blks = (512UL * (1 << 10)); 11 | uint g_max_extent_size_blks = (1 * (1 << 10)); 12 | uint g_block_reservation_size_blks = (1 * (1 << 10)); 13 | uint g_fd_start = 1000000; 14 | */ 15 | 16 | 17 | 18 | void mlfs_setup(void) 19 | { 20 | //open_file_table = malloc (sizeof(struct file) * g_max_open_files); 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /libfs/src/global/ncx_core.h: -------------------------------------------------------------------------------- 1 | #ifndef _NCX_CORE_H_ 2 | #define _NCX_CORE_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | typedef unsigned char u_char; 15 | typedef uintptr_t ncx_uint_t; 16 | typedef intptr_t ncx_int_t; 17 | 18 | #ifndef NCX_ALIGNMENT 19 | #define NCX_ALIGNMENT sizeof(unsigned long) /* platform word */ 20 | #endif 21 | 22 | #define LOG_LEVEL 4 23 | #define PAGE_MERGE 24 | 25 | #define ncx_align(d, a) (((d) + (a - 1)) & ~(a - 1)) 26 | #define ncx_align_ptr(p, a) \ 27 | (u_char *)(((uintptr_t)(p) + ((uintptr_t)a - 1)) & ~((uintptr_t)a - 1)) 28 | 29 | #define ncx_memzero(buf, n) (void)memset(buf, 0, n) 30 | #define ncx_memset(buf, c, n) (void)memset(buf, c, n) 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /libfs/src/global/ncx_lock.h: -------------------------------------------------------------------------------- 1 | #ifndef _NCX_LOCK_H_ 2 | #define _NCX_LOCK_H_ 3 | 4 | #include 5 | 6 | #define ncx_slab_lock(x) \ 7 | { /*void*/ \ 8 | } 9 | #define ncx_slab_unlock(x) \ 10 | { /*void*/ \ 11 | } 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libfs/src/global/ncx_log.h: -------------------------------------------------------------------------------- 1 | #ifndef _NCX_LOG_H_ 2 | #define _NCX_LOG_H_ 3 | 4 | #define LV_TRACE 1 5 | #define LV_DEBUG 2 6 | #define LV_INFO 4 7 | #define LV_ERROR 8 8 | #define LV_ALERT 16 9 | 10 | #define dbg_log(level, format, ...) \ 11 | do { \ 12 | if (level >= LOG_LEVEL) { \ 13 | fprintf(stderr, "[%c] [%s:%d] " format "\n", #level[3], \ 14 | __FUNCTION__, __LINE__, ##__VA_ARGS__); \ 15 | } \ 16 | } while (0) 17 | 18 | #define trace(format, ...) dbg_log(LV_TRACE, format, ##__VA_ARGS__) 19 | #define debug(format, ...) dbg_log(LV_DEBUG, format, ##__VA_ARGS__) 20 | #define info(format, ...) dbg_log(LV_INFO, format, ##__VA_ARGS__) 21 | #define error(format, ...) dbg_log(LV_ERROR, format, ##__VA_ARGS__) 22 | #define alert(format, ...) dbg_log(LV_ALERT, format, ##__VA_ARGS__) 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /libfs/src/io/device.h: -------------------------------------------------------------------------------- 1 | #ifndef _DEVICE_H_ 2 | #define _DEVICE_H_ 3 | 4 | #include "mlfs/kerncompat.h" 5 | #include "mlfs/mlfs_user.h" 6 | #include "ds/list.h" 7 | #include "ds/rbtree.h" 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | struct block_device { 14 | uint8_t b_devid ; 15 | unsigned long bd_flags; /* flags */ 16 | 17 | uint32_t bd_blocksize; 18 | uint32_t bd_blocksize_bits; 19 | 20 | int bd_nr_free; 21 | pthread_mutex_t bd_bh_free_lock; 22 | struct list_head bd_bh_free; 23 | 24 | pthread_mutex_t bd_bh_dirty_lock; 25 | struct list_head bd_bh_dirty; 26 | 27 | pthread_mutex_t bd_bh_ioqueue_lock; 28 | struct list_head bd_bh_ioqueue; 29 | 30 | pthread_mutex_t bd_bh_root_lock; 31 | struct rb_root bd_bh_root; 32 | 33 | pthread_t bd_bh_io_thread; 34 | pthread_t bd_bh_writeback_thread; 35 | int bd_bh_io_wakeup_fd[2]; 36 | int bd_bh_writeback_wakeup_fd[2]; 37 | 38 | uint8_t *map_base_addr; 39 | struct storage_operations *storage_engine; 40 | }; 41 | 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /libfs/src/mlfs/mlfs_interface.h: -------------------------------------------------------------------------------- 1 | #ifndef _MLFS_INTERFACE_H_ 2 | #define _MLFS_INTERFACE_H_ 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | void init_fs(void); 9 | void shutdown_fs(void); 10 | 11 | //logs 12 | void read_log_headers(void); 13 | int mlfs_process_id(void); 14 | unsigned int make_digest_request_sync(int percent); 15 | int make_digest_request_async(int percent); 16 | void wait_on_digesting(); 17 | /* 18 | static void install_log_group(struct logheader *loghdr, 19 | addr_t hdr_blkno); 20 | */ 21 | int mlfs_do_rsync(void); 22 | 23 | extern unsigned char initialized; 24 | 25 | //utils 26 | int bms_search(char *txt, char *pat); 27 | 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /libfs/src/mlfs/mlfs_user.h: -------------------------------------------------------------------------------- 1 | #ifdef __cplusplus 2 | extern "C" { 3 | #endif 4 | 5 | #include 6 | #include 7 | #include 8 | //#include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /libfs/tests/.gdbinit: -------------------------------------------------------------------------------- 1 | define load_sl 2 | sharedlibrary libshim.so 3 | sharedlibrary libmlfs.so 4 | end 5 | 6 | set auto-solib-add on 7 | set auto-load safe-path ../../shim/glibc-build:../../shim/glibc-2.19 8 | set libthread-db-search-path ../../shim/glibc-build/nptl_db/ 9 | set environment LD_PRELOAD ../../shim/libshim/libshim.so:../lib/jemalloc-4.5.0/lib/libjemalloc.so.2 10 | set environment LD_LIBRARY_PATH ../lib/nvml/src/nondebug/:../build/:../../shim/glibc-build/rt/:../src/storage/spdk/ 11 | #set environment DEV_ID 4 12 | 13 | set follow-fork-mode child 14 | 15 | # loading python modules. 16 | source ../../gdb_python_modules/load_modules.py 17 | 18 | # this is macro to setup for breakpoint 19 | define setup_br 20 | b 60 21 | # run programe 22 | r w aa 40K 23 | 24 | l add_to_log 25 | b 541 if $caller_is("posix_write", 8) 26 | #b balloc if $caller_is("posix_write", 8) 27 | end 28 | -------------------------------------------------------------------------------- /libfs/tests/mkdir_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include 6 | 7 | 8 | int main(int argc, char ** argv) 9 | { 10 | struct stat st = {0}; 11 | 12 | //init_fs(); 13 | 14 | //if (stat("/mlfs/zvon/Maildir/tmp/", &st) == -1) { 15 | // mkdir("/mlfs/zvon/Maildir/tmp/", 0700); 16 | //} 17 | 18 | //if (stat("/mlfs/zvon/Maildir/", &st) == -1) { 19 | mkdir("/mlfs/", 0700); 20 | mkdir("/mlfs/zvon/", 0700); 21 | mkdir("/mlfs/zvon/Maildir/", 0700); 22 | pause(); 23 | //mkdir("/mlfs/zvon/Maildir/cur/", 0700); 24 | //mkdir("/mlfs/zvon/Maildir/tmp/", 0700); 25 | //mkdir("/mlfs/zvon/Maildir/new/", 0700); 26 | //} 27 | 28 | //shutdown_fs(); 29 | return 0; 30 | } 31 | -------------------------------------------------------------------------------- /libfs/tests/mkfs.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/sudo /bin/bash 2 | 3 | LD_LIBRARY_PATH=../lib/nvml/src/nondebug/: ../bin/mkfs.mlfs 4 $@ 4 | -------------------------------------------------------------------------------- /libfs/tests/readdir_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include 6 | 7 | int main(int argc, char ** argv) 8 | { 9 | struct dirent * dirent; 10 | 11 | DIR * dir; 12 | 13 | //init_fs(); 14 | 15 | dir = opendir("/mlfs"); 16 | 17 | //dir_test creates 1000 files in /mlfs/test_dir/files 18 | //dir = opendir("/mlfs/test_dir/files/"); 19 | 20 | while ((dirent = readdir(dir))) 21 | printf("found %s\n", dirent->d_name); 22 | 23 | closedir(dir); 24 | 25 | //shutdown_fs(); 26 | 27 | return 0; 28 | } 29 | -------------------------------------------------------------------------------- /libfs/tests/run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | PATH=$PATH:. 4 | 5 | LD_PRELOAD=../build/libmlfs.so MLFS_PROFILE=1 ${@} 6 | 7 | -------------------------------------------------------------------------------- /libfs/tests/run_valgrind.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | #valgrind --trace-children=yes --tool=helgrind --read-var-info=yes ./run.sh iobench wr ext4 20M 3K 5 |& tee val.txt 4 | valgrind -v --tool=drd --trace-children=yes --read-var-info=yes ./run.sh iobench sw 200M 64K 4 |& tee val.txt 5 | -------------------------------------------------------------------------------- /libfs/tests/slave_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | volatile sig_atomic_t stop; 9 | 10 | void inthand(int signum) 11 | { 12 | stop = 1; 13 | } 14 | 15 | int main(int argc, char ** argv) 16 | { 17 | struct dirent * dirent; 18 | 19 | DIR * dir; 20 | 21 | //init_fs(); 22 | 23 | signal(SIGINT, inthand); 24 | 25 | while (!stop) 26 | { 27 | sleep(1); 28 | } 29 | 30 | //shutdown_fs(); 31 | 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /libfs/tests/storage_dax.c: -------------------------------------------------------------------------------- 1 | ../src/storage/storage_dax.c -------------------------------------------------------------------------------- /libfs/tests/time_stat.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | struct time_stats { 10 | struct timeval time_start; 11 | int n, count; 12 | double* time_v; 13 | }; 14 | 15 | void time_stats_init(struct time_stats*, int); 16 | void time_stats_start(struct time_stats*); 17 | void time_stats_stop(struct time_stats*); 18 | void time_stats_print(struct time_stats*, char*); 19 | double time_stats_get_avg(struct time_stats*); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /utils/disconnect_hd: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sudo /bin/bash 2 | 3 | . `dirname $0`/environment 4 | 5 | umount ${VM_DISK} 6 | fsck ${NBD_DEVICE}p1 7 | ${QEMU_NBD} -d ${NBD_DEVICE} 8 | -------------------------------------------------------------------------------- /utils/environment: -------------------------------------------------------------------------------- 1 | IMAGE_NAME=${NAME:-base.img} 2 | 3 | UTILS_DIR=$(dirname $(readlink -f $0)) 4 | BASE_DIR=$(readlink -f ${UTILS_DIR}/..) 5 | QEMU_DIR=${BASE_DIR}/kernel/qemu-2.7.0 6 | KERNEL_DIR=${BASE_DIR}/kernel/kbuild 7 | 8 | # environment for connecting the hd 9 | VM_DISK=/mnt/vm1 10 | 11 | NBD_DEVICE=/dev/nbd0 12 | IMAGE=${IMAGE_NAME} 13 | QEMU_NBD=${QEMU_DIR}/qemu-nbd 14 | 15 | CUR_DIR=$(pwd) 16 | 17 | # You have to set these yourself... 18 | USB_KBD= 19 | USB_MOUSE= 20 | -------------------------------------------------------------------------------- /utils/install_kernel: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | # Uncomment the option below to debug 4 | # set -x 5 | 6 | . `dirname $0`/environment 7 | 8 | CURDIR=`pwd` 9 | 10 | ${UTILS_DIR}/connect_hd $@ 11 | 12 | cd ${KERNEL_DIR} 13 | make INSTALL_PATH=${VM_DISK}/boot install 14 | make INSTALL_MOD_PATH=${VM_DISK} modules_install 15 | cd ${CURDIR} 16 | 17 | ${UTILS_DIR}/disconnect_hd 18 | -------------------------------------------------------------------------------- /utils/qemu-if.conf: -------------------------------------------------------------------------------- 1 | BRIDGE=br0 2 | NETWORK=192.168.1.0 3 | HOST=192.168.1.1 4 | MASK=255.255.255.0 5 | SHORT_MASK=24 6 | -------------------------------------------------------------------------------- /utils/qemu-ifdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | UTILS_DIR=$(dirname $0) 4 | . ${UTILS_DIR}/qemu-if.conf 5 | 6 | # set -x 7 | 8 | echo "Tearing down network bridge for $1" 9 | ip link set ${1} down 10 | brctl delif ${BRIDGE} ${1} 11 | 12 | #ifconfig ${BRIDGE} 0.0.0.0 13 | #ip link set ${BRIDGE} down 14 | #brctl delbr ${BRIDGE} 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /utils/qemu-ifup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ## Inspired by: http://www.linuxquestions.org/questions/linux-networking-3/kvm-qemu-and-nat-on-the-host-machine-mini-tutorial-697980/ 4 | 5 | UTILS_DIR=$(dirname $0) 6 | . ${UTILS_DIR}/qemu-if.conf 7 | 8 | # set -x 9 | 10 | echo ${0}: 11 | echo "Setting up the network bridge for $1" 12 | 13 | brctl addbr ${BRIDGE} 14 | brctl addif ${BRIDGE} ${1} 15 | ifconfig ${BRIDGE} ${HOST} netmask ${MASK} 16 | ip link set ${1} up 17 | ip link set ${BRIDGE} up 18 | 19 | if iptables -t nat -L POSTROUTING -n | grep ^MASQUERADE | awk '{print $4}' | cut -d/ -f1 | grep ${NETWORK} > /dev/null; then 20 | echo "IP masquerading already set up" 21 | else 22 | echo "Setting up IP masquerading" 23 | iptables -t nat -A POSTROUTING -s ${NETWORK}/${SHORT_MASK} ! -d ${NETWORK}/${SHORT_MASK} -j MASQUERADE 24 | fi 25 | 26 | echo "Setting up IP forwarding" 27 | sysctl net.ipv4.ip_forward=1 28 | 29 | exit 0 30 | -------------------------------------------------------------------------------- /utils/rdma_setup.sh: -------------------------------------------------------------------------------- 1 | /etc/init.d/opensmd restart 2 | ifconfig ib0 $1/24 3 | -------------------------------------------------------------------------------- /utils/sed_all_files.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | find . -type f -name "*.[c|h]" -print0 | xargs -0 sed -i "s/$1/$2/g" 4 | -------------------------------------------------------------------------------- /utils/use_dax.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | if [[ $# < 1 ]]; 3 | then 4 | echo "$0 " 5 | exit 6 | fi 7 | 8 | if [[ $1 == "bind" ]]; 9 | then 10 | sudo ndctl create-namespace -m dax -e namespace0.0 -f 11 | sudo ndctl create-namespace -m dax -e namespace1.0 -f 12 | sudo ndctl create-namespace -m dax -e namespace2.0 -f 13 | sudo ndctl create-namespace -m dax -e namespace3.0 -f 14 | sudo ndctl create-namespace -m dax -e namespace4.0 -f 15 | 16 | sudo chmod 777 /dev/dax0.0 /dev/dax1.0 17 | sudo chmod 777 /dev/dax0.0 /dev/dax1.0 /dev/dax2.0 /dev/dax3.0 /dev/dax4.0 18 | elif [[ $1 == "unbind" ]]; 19 | then 20 | sudo ndctl create-namespace -m memory -e namespace0.0 -f 21 | sudo ndctl create-namespace -m memory -e namespace1.0 -f 22 | sudo ndctl create-namespace -m memory -e namespace2.0 -f 23 | sudo ndctl create-namespace -m memory -e namespace3.0 -f 24 | sudo ndctl create-namespace -m memory -e namespace4.0 -f 25 | else 26 | echo "$0 " 27 | fi 28 | --------------------------------------------------------------------------------