• Stars
    star
    160
  • Rank 234,626 (Top 5 %)
  • Language
    Assembly
  • License
    Other
  • Created almost 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Some experiments concerning the performance of Linux pipes. Please head to the blog post to understand what this code is about.

Building and running

% make
% ./write | ./read
4.5GiB/s, 256KiB buffer, 40960 iterations (10GiB piped)

./read reads 10GiB (by default). Use --csv for machine-readable output with this schema:

gigabytes_per_second,bytes_to_pipe,buf_size,pipe_size,busy_loop,poll,huge_page,check_huge_page,write_with_vmsplice,read_with_splice,gift,lock_memory,dont_touch_pages,same_buffer

Where the first four are numbers and the rest are booleans. All the fields apart from gigabytes_per_seconds (which is the main output of the program) are configurable on the command line. Check out parse_options in common.hpp.

measure.py can be ran to automatically produce the data shown in the graph at the top of the blog post. It requires taskset, and various python libraries. If you have nix:

% nix-shell
% python3 measure.py

Additionally, get-user-pages.cpp contains a small benchmark using /sys/kernel/debug/gup_test. To run it, you need to compile your kernel with CONFIG_GUP_TEST y. Also, the file and flag were recently renamed, prior to kernel version 5.17 they were called gup_benchmark and CONFIG_GUP_BENCHMARK, respectively.

More Repositories

1

wadump

Small utility to dump data from the multi-device WhatsApp web client.
JavaScript
57
star
2

suggest

Simple auto completion web server
JavaScript
33
star
3

mazzo.li

Source for https://mazzo.li
Haskell
28
star
4

tog

Haskell
25
star
5

hakyll-agda

Hakyll support for Agda literate files
Haskell
19
star
6

zurihac-plays

Haskell
12
star
7

sundown

Haskell bindings to the sundown markdown library
C
12
star
8

ml-w

Minimal ML language to to demonstrate the W type infererence algorithm
Haskell
11
star
9

ny-haskell-agda

Code and slides form my talk at NY Haskell
Agda
9
star
10

anapo

Haskell
8
star
11

micrograd-ad

Haskell
8
star
12

kant

Core dependent language based on OTT (someday)
Haskell
7
star
13

x62-fancontrol

C
7
star
14

agdastuff

Assorted Agda code.
Haskell
7
star
15

haskell-readability

Short article about Haskell, python, and readability
Haskell
7
star
16

bson-mapping

type safe mapping between algebraic data types and bson documents.
Haskell
6
star
17

pitch-control

Haskell
6
star
18

reskell

A clone of hacker news in happstack
Haskell
4
star
19

kyotocabinet

Mid level Haskell bindings to KyotoCabinet
Haskell
4
star
20

language-spelling

Haskell library meant to be a set of tools to correct spelling mistakes, homophones, and OCR errors
Haskell
4
star
21

YouTubePlayer

MooTools class that wraps the YouTube player JavaScript API.
JavaScript
3
star
22

malice

Compiler for a really special language.
Haskell
2
star
23

troppotardi

Python
2
star
24

hs-cam-filter

Haskell
2
star
25

puzzlescript-rs

Rust
2
star
26

cpdt-agda

Partial translation of http://adam.chlipala.net/cpdt/ in Agda
2
star
27

ml

Parser/TypeChecker/Compiler for a simple flavour of ML.
Haskell
2
star
28

wordwang2

Haskell
2
star
29

andreaciofi

JavaScript
1
star
30

quatris

Tetris clone with AI and bastard mode
C
1
star
31

swine

🐖
Haskell
1
star
32

2048hs

2048 + AI in Haskell
Haskell
1
star
33

zoli-shake

Haskell
1
star
34

fancontrol

Stupid fancontrol script, since nothing else seems to work for me.
1
star
35

dependencies

Analyze module dependencies in erlang apps
Erlang
1
star
36

ghc-timers

Haskell
1
star
37

dogfights

Rust
1
star
38

gogh

Haskell templates, similar to Google Closure templates
Haskell
1
star