blob: ee228b7029eaf57a92e718f0d6ce4c148884ad6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
#!/bin/bash
require-lib ../prelude.sh
require-make bcachefs-tools
require-kernel-config BCACHEFS_FS
require-kernel-config BCACHEFS_TESTS
if [[ $KERNEL_ARCH = x86 ]]; then
require-kernel-config CRYPTO_CRC32C_INTEL
fi
config-mem 8G
config-scratch-devs 8G
config-timeout 600
btree_node_size=8k
n=10M
t=4
perf_mkfs()
{
bcachefs format \
--errors=panic \
/dev/sdb >/dev/null
#--bucket=$btree_node_size \
#--btree_node_size=$btree_node_size \
mount /dev/sdb /mnt
ln -sf /sys/fs/bcachefs/*/perf_test p
}
test_insert_overwrite()
{
perf_mkfs
echo seq_insert $n 1 > p
echo seq_insert $n 1 > p
echo seq_overwrite $n 1 > p
umount /mnt
}
test_perf_profile()
{
perf_mkfs
perf_4.14 record -g -o seq_insert -- echo seq_insert $n 1 > p
perf_4.14 record -g -o seq_lookup -- echo seq_lookup $n 1 > p
perf_4.14 stat -- echo seq_lookup $n 1 > p
#perf_4.14 record -g -o seq_delete -- echo seq_delete $n 1 > p
umount /mnt
}
test_merge_torture()
{
perf_mkfs
while true; do
echo seq_insert $n 1 > p
echo seq_delete $n 1 > p
done
umount /mnt
}
test_perf_all()
{
settle=0
perf_mkfs
#while true; do
echo starting benches
echo seq_insert $n 1 > p
sleep $settle
echo seq_lookup $n 1 > p
sleep $settle
echo seq_delete $n 1 > p
sleep $settle
echo rand_insert $n 1 > p
sleep $settle
echo seq_delete $n 1 > p
sleep $settle
echo rand_insert $n $t > p
sleep $settle
echo rand_lookup $n 1 > p
sleep $settle
echo rand_lookup $n $t > p
sleep $settle
echo rand_mixed $n 1 > p
sleep $settle
echo rand_mixed $n $t > p
sleep $settle
#done
umount /mnt
}
do_unit_tests()
{
perf_mkfs
for i in $@; do
echo test_$i 1M 1 > p
done
umount /mnt
}
test_units()
{
do_unit_tests iterate iterate_extents iterate_slots iterate_slots_extents delete delete_written
}
test_extents()
{
do_unit_tests extent_overwrite_front \
extent_overwrite_back \
extent_overwrite_middle \
extent_overwrite_all
}
|