Interesting, I will see what I can do about it. Just curious, could for-next testing cover all architectures and compilers? Thanks for all the insightful comments from you guys, that's very helpful. ________________________________________ 发件人: Vlastimil Babka <vbabka@xxxxxxx> 发送时间: 2022年8月29日 22:21 收件人: Hyeonggon Yoo; Matthew Wilcox 抄送: Dawei Li; cl@xxxxxxxxx; penberg@xxxxxxxxxx; rientjes@xxxxxxxxxx; iamjoonsoo.kim@xxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; roman.gushchin@xxxxxxxxx; linux-mm@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx 主题: Re: [PATCH] mm: simplify size2index conversion of __kmalloc_index 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.