Skip to content

Instantly share code, notes, and snippets.

swinfra-admin/sample-project/1q7chg7p/code/tutorial.py {}
swinfra-admin/sample-project/1q7chg7p/config.yaml {}
swinfra-admin/sample-project/1q7chg7p/media/graph/graph_summary_b50a7fff.graph.json {}
swinfra-admin/sample-project/1q7chg7p/model-best.h5 {}
swinfra-admin/sample-project/1q7chg7p/output.log {}
swinfra-admin/sample-project/1q7chg7p/requirements.txt {}
swinfra-admin/sample-project/1q7chg7p/wandb-metadata.json {}
swinfra-admin/sample-project/1q7chg7p/wandb-summary.json {}
swinfra-admin/sample-project/1rgcvkcd/code/tutorial.py {'wandb-synced': 'true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,tr
@sitsofe
sitsofe / signalhang.c
Created March 12, 2018 11:34
Program that demonstrates a hang in pthread_cond_signal() when using winpthreads
/* Program that demonstrates a hang in pthread_cond_signal() when using
* winpthreads (at least versions 5.0.2-7.2.0). On Windows compile with
* x86_64-w64-mingw32-gcc -g -O3 -static -pthread signalhang.c -o signalhang
* on Linux compile with
* gcc -g -O3 -lrt -pthread signalhang.c -o signalhang
*
* Extra compilation options:
* -DDETECT_DEADLOCK=1 : Print a message and trigger an assert if it looks like
* threads have become deadlocked
* -DLOGGING=1 : Print logging information when wakes are done. "hits" is
@sitsofe
sitsofe / ashmem_pad.patch
Created June 19, 2017 04:31
Fio Android shared memory patch
diff --git a/os/os-android.h b/os/os-android.h
index c56d6827109a..6eeb1e4c39a6 100644
--- a/os/os-android.h
+++ b/os/os-android.h
@@ -98,7 +98,7 @@ static inline int shmget(key_t __key, size_t __size, int __shmflg)
goto error;
/* Stores size in first 8 bytes, allocate extra space */
- ret = ioctl(fd, ASHMEM_SET_SIZE, __size + sizeof(uint64_t));
+ ret = ioctl(fd, ASHMEM_SET_SIZE, __size + 2 * sizeof(uint64_t));
@sitsofe
sitsofe / gist:45fa767f72439cd1f8c148794382003b
Last active April 2, 2017 07:50
fio timeval_add_msec benchmarks
valgrind --tool=cachegrind --branch-sim=yes fio --thread --eta=never --ioengine=libaio --readwrite=write --time_based=1 --runtime=60 --filename=/tmp/fio --size=1M --direct=1 --name=test --write_iops_log=/tmp/test --log_avg_msec=5500
Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw Bc Bcm Bi Bim
. . . . . . . . . . . . . void timeval_add_msec(struct timeval *tv, unsigned int msec)
. . . . . . . . . . . . . {
1,744 242 1 872 0 0 371 0 0 0 0 0 0 tv->tv_usec += 1000 * msec;
1,002 241 1 0 0 0 0 0 0 501 126 0 0 if (tv->tv_usec >= 1000000) {
390 0 0 130 0 0 130 0 0 0 0 0 0 tv->tv_usec -= 1000000;
130 0 0 130 0 0 0 0 0 0 0 0 0 tv->tv_sec++;
. . . . . . . . . . . . . }

How fio works

The first step in getting fio to simulate a desired I/O workload, is writing a job file describing that specific setup. A job file may contain any number of threads and/or files -- the typical contents of the job file is a global section defining shared parameters, and one or more job sections describing the jobs involved. When run, fio parses this file and sets everything up as described. If we break down a job from top to bottom, it contains the following basic parameters:

@sitsofe
sitsofe / libaio-msan.patch
Last active June 12, 2016 06:55
MemorySanitizer patch for libaio
x86_64 only patch to build libaio under MemorySanitzer. Based against libaio git repo from
https://git.fedorahosted.org/cgit/libaio.git/ and using the information provided by Evgeniy Stepanov in
https://github.com/google/sanitizers/issues/688#issuecomment-225403581 .
diff --git a/src/Makefile b/src/Makefile
index eadb336..c839c9c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2,8 +2,8 @@ prefix=/usr
includedir=$(prefix)/include