]> git.bitcoin.ninja Git - rust-lightning/commit
Calculate the padding required on `ChannelLiquidity` dynamically
authorMatt Corallo <git@bluematt.me>
Sat, 23 Nov 2024 20:36:06 +0000 (20:36 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 23 Nov 2024 21:02:20 +0000 (21:02 +0000)
commit18c0b5d4f28fd931060af78ef7936ac8f7436190
treeb1ba710a3389b84bdddef8251be7803be4a543d9
parent2d6720e7e253c2ce24180774adfd309c92377c96
Calculate the padding required on `ChannelLiquidity` dynamically

We expect `ChannelLiquidity` to be exactly three cache lines to
ensure the first bytes we need are all one one cache line, but in
practice its a bit more ideal for `ChannelLiquidity`s to always
start on an even cache line as x86 CPUs will often load the
neighboring cache line automatically.

Further, it looks like some versions of `rustc` on some platforms
don't pack `ChannelLiquidity` as well (in #3415) and the next
commit is going to push us over three cache lines anyway.

Instead, here we calculate out the proper padding for
`ChannelLiquidity` to make it align to four 64-byte cache lines.

Should fix #3415.
lightning/src/routing/scoring.rs