lkml.org 
[lkml]   [2020]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC Patch 0/2] KVM: SVM: Cgroup support for SVM SEV ASIDs
From
Date


On 24.11.20 20:16, Sean Christopherson wrote:
> On Fri, Nov 13, 2020, David Rientjes wrote:
>>
>> On Mon, 2 Nov 2020, Sean Christopherson wrote:
>>
>>> On Fri, Oct 02, 2020 at 01:48:10PM -0700, Vipin Sharma wrote:
>>>> On Fri, Sep 25, 2020 at 03:22:20PM -0700, Vipin Sharma wrote:
>>>>> I agree with you that the abstract name is better than the concrete
>>>>> name, I also feel that we must provide HW extensions. Here is one
>>>>> approach:
>>>>>
>>>>> Cgroup name: cpu_encryption, encryption_slots, or memcrypt (open to
>>>>> suggestions)
>>>>>
>>>>> Control files: slots.{max, current, events}
>>>
>>> I don't particularly like the "slots" name, mostly because it could be confused
>>> with KVM's memslots. Maybe encryption_ids.ids.{max, current, events}? I don't
>>> love those names either, but "encryption" and "IDs" are the two obvious
>>> commonalities betwee TDX's encryption key IDs and SEV's encryption address
>>> space IDs.
>>>
>>
>> Looping Janosch and Christian back into the thread.
>>
>> I interpret this suggestion as
>> encryption.{sev,sev_es,keyids}.{max,current,events} for AMD and Intel
>
> I think it makes sense to use encryption_ids instead of simply encryption, that
> way it's clear the cgroup is accounting ids as opposed to restricting what
> techs can be used on yes/no basis.

For what its worth the IDs for s390x are called SEIDs (secure execution IDs)

>
>> offerings, which was my thought on this as well.
>>
>> Certainly the kernel could provide a single interface for all of these and
>> key value pairs depending on the underlying encryption technology but it
>> seems to only introduce additional complexity in the kernel in string
>> parsing that can otherwise be avoided. I think we all agree that a single
>> interface for all encryption keys or one-value-per-file could be done in
>> the kernel and handled by any userspace agent that is configuring these
>> values.
>>
>> I think Vipin is adding a root level file that describes how many keys we
>> have available on the platform for each technology. So I think this comes
>> down to, for example, a single encryption.max file vs
>> encryption.{sev,sev_es,keyid}.max. SEV and SEV-ES ASIDs are provisioned
>
> Are you suggesting that the cgroup omit "current" and "events"? I agree there's
> no need to enumerate platform total, but not knowing how many of the allowed IDs
> have been allocated seems problematic.
>
>> separately so we treat them as their own resource here.
>>
>> So which is easier?
>>
>> $ cat encryption.sev.max
>> 10
>> $ echo -n 15 > encryption.sev.max
>>
>> or
>>
>> $ cat encryption.max
>> sev 10
>> sev_es 10
>> keyid 0
>> $ echo -n "sev 10" > encryption.max
>>
>> I would argue the former is simplest (always preferring
>> one-value-per-file) and avoids any string parsing or resource controller
>> lookups that need to match on that string in the kernel.

I like the idea of having encryption_ids.max for all platforms.
If we go for individual files using "seid" for s390 seems the best name.

>
> Ya, I prefer individual files as well.
>
> I don't think "keyid" is the best name for TDX, it doesn't leave any wiggle room
> if there are other flavors of key IDs on Intel platform, e.g. private vs. shared
> in the future. It's also inconsistent with the SEV names, e.g. "asid" isn't
> mentioned anywhere. And "keyid" sort of reads as "max key id", rather than "max
> number of keyids". Maybe "tdx_private", or simply "tdx"? Doesn't have to be
> solved now though, there's plenty of time before TDX will be upstream. :-)
>
>> The set of encryption.{sev,sev_es,keyid} files that exist would depend on
>> CONFIG_CGROUP_ENCRYPTION and whether CONFIG_AMD_MEM_ENCRYPT or
>> CONFIG_INTEL_TDX is configured. Both can be configured so we have all
>> three files, but the root file will obviously indicate 0 keys available
>> for one of them (can't run on AMD and Intel at the same time :).
>>
>> So I'm inclined to suggest that the one-value-per-file format is the ideal
>> way to go unless there are objections to it.

\
 
 \ /
  Last update: 2020-11-27 19:07    [W:0.428 / U:0.360 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site