In MDEV-29445, I wanted to remove the data member buf_page_t::frame, because there is a simple 1:1 mapping between page frame addresses and block descriptor addresses. That is, the data member would be replaced with a member function buf_page_t::frame(). Because I anticipated the member function calls to cause some performance regression, I thought that it would make sense to remove as many references to buf_page_t::frame as possible.
I just tested this change on top of the latest 10.6. In my quick test (Sysbench oltp_write_only), the performance difference is at most 2%, sometimes showing a regression, sometimes an improvement.
I think that it would be useful to run more tests and refine this patch, to revert parts that are not helpful (causing extra calls to page_align() or page_offset()). The outcome of this might be that it is better to retain the redundant data member buf_page_t::frame in MDEV-29445.