Guoqing Jiang 69b00b5bb2 md: introduce a new struct for IO serialization
Obviously, IO serialization could cause the degradation of
performance a lot. In order to reduce the degradation, so a
rb interval tree is added in raid1 to speed up the check of
collision.

So, a rb root is needed in md_rdev, then abstract all the
serialize related members to a new struct (serial_in_rdev),
embed it into md_rdev.

Of course, we need to free the struct if it is not needed
anymore, so rdev/rdevs_uninit_serial are added accordingly.
And they should be called when destroty memory pool or can't
alloc memory.

And we need to consider to call mddev_destroy_serial_pool
in case serialize_policy/write-behind is disabled, bitmap
is destroyed or in __md_stop_writes.

Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Signed-off-by: Song Liu <songliubraving@fb.com>
2020-01-13 11:44:10 -08:00
..
2019-11-12 19:12:07 -07:00
2019-09-16 10:18:01 -04:00
2019-11-12 19:12:07 -07:00
2016-11-01 09:43:26 -06:00
2019-09-04 09:39:22 -04:00
2019-11-05 14:21:40 -05:00
2017-06-09 09:27:32 -06:00
2019-11-12 19:12:07 -07:00
2019-08-23 10:13:12 -04:00
2019-11-20 10:35:31 -05:00
2019-09-12 09:32:31 -04:00
2019-11-25 11:15:41 -08:00
2019-03-12 10:15:18 -07:00
2019-12-09 10:36:44 -08:00