common, mds: combine several encode() calls#60252
Conversation
94e8e7e to
66ab50e
Compare
66ab50e to
0f04c56
Compare
0f04c56 to
659f668
Compare
|
jenkins retest this please |
The `denc` library allows appending multiple values in a single `buffer::list` call by wrapping them in a `std::tuple`. This reduces overhead because the buffer bounds checks have to be performed only once. The `file_layout_t` type turned up in the profiler, so it was an obvious choice to optimize now. Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
The `denc` library allows appending multiple values in a single `buffer::list` call by wrapping them in a `std::tuple`. This reduces overhead because the buffer bounds checks have to be performed only once. This patch optimizes several types that turned up in the profiler. Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
659f668 to
4ebdd59
Compare
|
It's been nearly a month. |
|
Hey @MaxKellermann sorry for the delay, just a quick question - Shouldn't entries like Line 4152 in d6d49c9 |
|
@dparmar18, why not - this PR does not have 100% coverage of all possible optimizations. If you look close enough, you will be able to find hundreds of other calls that can be optimized with this trick. Once this PR is merged, you could post another PR with these findings. |
alright |
|
It's been another 3 weeks. And more than 3 months since I submitted this. |
hey @MaxKellermann apologies for the delay. There are tons of patches pending to be reviewed and QAed. We should pick this up soon, ping @batrick |
|
jenkins test make check arm64 |
|
This PR is under test in https://tracker.ceph.com/issues/69828. |
The
denclibrary allows appending multiple values in a singlebuffer::listcall by wrapping them in astd::tuple. This reduces overhead because the buffer bounds checks have to be performed only once.This PR optimizes a few hot code paths that were visible in the profiler.
Checklist