Commit e2dd8ac
dm bio prison v1: improve concurrent IO performance
Split the bio prison into multiple regions, with a separate rbtree and
associated lock for each region.
To get fast bio prison locking and not damage the performance of
discards too much the bio-prison now stipulates that discards should
not cross a BIO_PRISON_MAX_RANGE boundary.
Because the range of a key (block_end - block_begin) must not exceed
BIO_PRISON_MAX_RANGE: break_up_discard_bio() now ensures the data
range reflected in PHYSICAL key doesn't exceed BIO_PRISON_MAX_RANGE.
And splitting the thin target's discards (handled with VIRTUAL key) is
achieved by updating dm-thin.c to set limits->max_discard_sectors in
terms of BIO_PRISON_MAX_RANGE _and_ setting the thin and thin-pool
targets' max_discard_granularity to true.
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>1 parent 06961c4 commit e2dd8ac
3 files changed
Lines changed: 121 additions & 68 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | | - | |
| 23 | + | |
22 | 24 | | |
23 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
24 | 30 | | |
25 | 31 | | |
26 | 32 | | |
| |||
34 | 40 | | |
35 | 41 | | |
36 | 42 | | |
37 | | - | |
38 | 43 | | |
| 44 | + | |
| 45 | + | |
39 | 46 | | |
40 | 47 | | |
41 | 48 | | |
42 | 49 | | |
43 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
44 | 54 | | |
45 | 55 | | |
46 | 56 | | |
47 | 57 | | |
48 | 58 | | |
49 | 59 | | |
50 | 60 | | |
51 | | - | |
52 | | - | |
53 | 61 | | |
54 | 62 | | |
55 | 63 | | |
| |||
107 | 115 | | |
108 | 116 | | |
109 | 117 | | |
110 | | - | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
111 | 131 | | |
112 | 132 | | |
113 | 133 | | |
114 | 134 | | |
115 | 135 | | |
116 | 136 | | |
117 | | - | |
| 137 | + | |
118 | 138 | | |
119 | 139 | | |
120 | 140 | | |
| |||
139 | 159 | | |
140 | 160 | | |
141 | 161 | | |
142 | | - | |
| 162 | + | |
143 | 163 | | |
144 | 164 | | |
145 | 165 | | |
| |||
151 | 171 | | |
152 | 172 | | |
153 | 173 | | |
| 174 | + | |
| 175 | + | |
154 | 176 | | |
155 | | - | |
156 | | - | |
157 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
158 | 180 | | |
159 | 181 | | |
160 | 182 | | |
| |||
181 | 203 | | |
182 | 204 | | |
183 | 205 | | |
184 | | - | |
| 206 | + | |
185 | 207 | | |
186 | 208 | | |
187 | 209 | | |
188 | | - | |
| 210 | + | |
189 | 211 | | |
190 | 212 | | |
191 | 213 | | |
| |||
198 | 220 | | |
199 | 221 | | |
200 | 222 | | |
201 | | - | |
202 | | - | |
203 | | - | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
204 | 228 | | |
205 | 229 | | |
206 | 230 | | |
207 | 231 | | |
208 | 232 | | |
209 | 233 | | |
210 | | - | |
| 234 | + | |
211 | 235 | | |
212 | 236 | | |
213 | 237 | | |
214 | | - | |
| 238 | + | |
215 | 239 | | |
216 | 240 | | |
217 | 241 | | |
218 | 242 | | |
219 | 243 | | |
220 | 244 | | |
221 | 245 | | |
| 246 | + | |
222 | 247 | | |
223 | 248 | | |
224 | | - | |
225 | | - | |
226 | | - | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
227 | 252 | | |
228 | 253 | | |
229 | 254 | | |
| |||
248 | 273 | | |
249 | 274 | | |
250 | 275 | | |
251 | | - | |
| 276 | + | |
| 277 | + | |
252 | 278 | | |
253 | | - | |
254 | | - | |
| 279 | + | |
| 280 | + | |
255 | 281 | | |
256 | 282 | | |
257 | 283 | | |
258 | | - | |
| 284 | + | |
259 | 285 | | |
260 | 286 | | |
261 | 287 | | |
262 | | - | |
| 288 | + | |
263 | 289 | | |
264 | 290 | | |
265 | 291 | | |
| |||
271 | 297 | | |
272 | 298 | | |
273 | 299 | | |
| 300 | + | |
274 | 301 | | |
275 | | - | |
276 | | - | |
277 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
278 | 305 | | |
279 | 306 | | |
280 | 307 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
37 | 47 | | |
38 | 48 | | |
39 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1674 | 1674 | | |
1675 | 1675 | | |
1676 | 1676 | | |
1677 | | - | |
| 1677 | + | |
| 1678 | + | |
1678 | 1679 | | |
1679 | 1680 | | |
1680 | | - | |
1681 | | - | |
1682 | | - | |
1683 | | - | |
1684 | | - | |
1685 | 1681 | | |
1686 | 1682 | | |
1687 | | - | |
| 1683 | + | |
1688 | 1684 | | |
1689 | 1685 | | |
1690 | 1686 | | |
1691 | 1687 | | |
1692 | 1688 | | |
1693 | | - | |
1694 | | - | |
1695 | | - | |
1696 | | - | |
1697 | | - | |
1698 | | - | |
1699 | 1689 | | |
1700 | 1690 | | |
1701 | | - | |
1702 | | - | |
1703 | | - | |
1704 | | - | |
1705 | | - | |
1706 | | - | |
1707 | | - | |
1708 | | - | |
1709 | | - | |
1710 | | - | |
1711 | | - | |
1712 | | - | |
| 1691 | + | |
1713 | 1692 | | |
1714 | 1693 | | |
1715 | | - | |
1716 | | - | |
1717 | | - | |
1718 | | - | |
1719 | | - | |
1720 | | - | |
| 1694 | + | |
1721 | 1695 | | |
1722 | | - | |
1723 | | - | |
1724 | | - | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
1725 | 1740 | | |
1726 | 1741 | | |
1727 | 1742 | | |
| |||
3380 | 3395 | | |
3381 | 3396 | | |
3382 | 3397 | | |
3383 | | - | |
3384 | 3398 | | |
3385 | 3399 | | |
3386 | 3400 | | |
3387 | 3401 | | |
3388 | 3402 | | |
3389 | 3403 | | |
| 3404 | + | |
3390 | 3405 | | |
3391 | 3406 | | |
3392 | 3407 | | |
| |||
4096 | 4111 | | |
4097 | 4112 | | |
4098 | 4113 | | |
4099 | | - | |
| 4114 | + | |
4100 | 4115 | | |
4101 | 4116 | | |
4102 | 4117 | | |
| |||
4261 | 4276 | | |
4262 | 4277 | | |
4263 | 4278 | | |
| 4279 | + | |
4264 | 4280 | | |
4265 | 4281 | | |
4266 | 4282 | | |
| |||
4476 | 4492 | | |
4477 | 4493 | | |
4478 | 4494 | | |
4479 | | - | |
| 4495 | + | |
4480 | 4496 | | |
4481 | 4497 | | |
4482 | 4498 | | |
4483 | 4499 | | |
4484 | | - | |
| 4500 | + | |
4485 | 4501 | | |
4486 | 4502 | | |
4487 | 4503 | | |
| |||
0 commit comments