On Mon, 21 Sep 2020 at 16:31, Will Deacon <will@xxxxxxxxxx> wrote: > On Mon, Sep 21, 2020 at 03:26:04PM +0200, Marco Elver wrote: > > Add architecture specific implementation details for KFENCE and enable > > KFENCE for the arm64 architecture. In particular, this implements the > > required interface in <asm/kfence.h>. Currently, the arm64 version does > > not yet use a statically allocated memory pool, at the cost of a pointer > > load for each is_kfence_address(). [...] > > For ARM64, we would like to solicit feedback on what the best option is > > to obtain a constant address for __kfence_pool. One option is to declare > > a memory range in the memory layout to be dedicated to KFENCE (like is > > done for KASAN), however, it is unclear if this is the best available > > option. We would like to avoid touching the memory layout. > Given that the pool is relatively small (i.e. when compared with our virtual > address space), dedicating an area of virtual space sounds like it makes > the most sense here. How early do you need it to be available? Note: we're going to send a v4 this or next week with a few other minor fixes in it. But I think we just don't want to block the entire series on figuring out what the static-pool arm64 version should do, especially if we'll have a few iterations with only this patch here changing. So the plan will be: 1. Send v4, which could from our point-of-view be picked up for merging. Unless of course there are more comments. 2. Work out the details for the static-pool arm64 version, since it doesn't seem trivial to do the same thing as we do for x86. In preparation for that, v4 will allow the __kfence_pool's attributes to be defined entirely by <asm/kfence.h>, so that we can fiddle with sections etc. 3. Send patch switching out the simpler arm64 version here for one that places __kfence_pool at a static location. Hopefully that plan is reasonable. Thanks, -- Marco