On 06/22/2016 01:17 PM, Cyrill Gorcunov wrote:
On Wed, Jun 22, 2016 at 12:56:56PM -0700, Dave Hansen wrote:
Yeah, cgroups don't make a lot of sense.
On x86, the 48-bit virtual address is even hard-coded in the ABI[1]. So we can't change *any* program's layout without either breaking the ABI or having it opt in.
But, we're also lucky to only have one VA layout since day one.
- www.x86-64.org/documentation/abi.pdf - “... Therefore, conforming
processes may only use addresses from 0x00000000 00000000 to 0x00007fff ffffffff .”
Yes, but noone forces you to write conforming programs ;) After all while hw allows you to run VA with bits > than 48 it's fine, all side effects of breaking abi is up to program author (iirc on x86 there is up to 52 bits on hw level allowed, don't have specs under my hands?)
My point was that you can't restrict the vaddr space without breaking the ABI because apps expect to be able to use 0x00007fffffffffff. You also can't extend the vaddr space because apps can *also* expect that there are no valid vaddrs past 0x00007fffffffffff.
So, whatever happens here, at least on x86, we can't do anything to the vaddr space without it being an opt-in for *each* *app*.