Re: [PATCH v7 03/14] x86/cet/ibt: Add IBT legacy code bitmap setup function

From: Dave Hansen
Date: Fri Jun 14 2019 - 12:18:07 EST


On 6/14/19 8:25 AM, Yu-cheng Yu wrote:
> On Mon, 2019-06-10 at 15:59 -0700, Dave Hansen wrote:
>> On 6/10/19 3:40 PM, Yu-cheng Yu wrote:
>>> Ok, we will go back to do_mmap() with MAP_PRIVATE, MAP_NORESERVE and
>>> VM_DONTDUMP. The bitmap will cover only 48-bit address space.
>>
>> Could you make sure to discuss the downsides of only doing a 48-bit
>> address space?
>
> The downside is that we cannot load legacy lib's above 48-bit address space, but
> currently ld-linux does not do that. Should ld-linux do that in the future,
> dlopen() fails. Considering CRIU migration, we probably need to do this anyway?

Again, I was thinking about JITs. Please remember that not all code in
the system is from files on the disk. Please. We need to be really,
really sure that we don't addle this implementation by being narrow
minded about this.

Please don't forget about JITs.

>> What are the reasons behind and implications of VM_DONTDUMP?
>
> The bitmap is very big.

Really? It's actually, what, 8*4096=32k, so 1/32,768th of the size of
the libraries legacy libraries you load? Do our crash dumps really not
know how to represent or deal with sparse mappings?

> In GDB, it should be easy to tell why a control-protection fault occurred
> without the bitmap.

How about why one didn't happen?