On 8/29/22 05:36, Hyeonggon Yoo wrote: > On Mon, Aug 29, 2022 at 04:11:04AM +0100, Matthew Wilcox wrote: >> On Sun, Aug 28, 2022 at 11:14:48PM +0800, Dawei Li wrote: >> > Current size2index is implemented by one to one hardcode mapping, >> > which can be improved by order_base_2(). >> > Must be careful to not violate compile-time optimization rule. >> >> This patch has been NACKed before (when submitted by other people). > > > Hmm right. > https://lkml.iu.edu/hypermail/linux/kernel/1606.2/05402.html > > Christoph Lameter wrote: >> On Wed, 22 Jun 2016, Yury Norov wrote: >> > There will be no fls() for constant at runtime because ilog2() calculates >> > constant values at compile-time as well. From this point of view, >> > this patch removes code duplication, as we already have compile-time >> > log() calculation in kernel, and should re-use it whenever possible.\ > >> The reason not to use ilog there was that the constant folding did not >> work correctly with one or the other architectures/compilers. If you want >> to do this then please verify that all arches reliably do produce a >> constant there. > > Can we re-evaluate this? Is there a way to turn inability of compile-time calculation to a compile-time error? (when size_is_constant=true etc). Then we could try and see if anything breaks in -next.