lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 1 Sep 2017 20:21:52 -0700
From:   Andy Lutomirski <>
To:     Brijesh Singh <>
Cc:     Borislav Petkov <>,
        "" <>,
        X86 ML <>,
        "" <>,
        linuxppc-dev <>,
        kvm list <>,
        Thomas Gleixner <>,
        Ingo Molnar <>,
        "H . Peter Anvin" <>,
        Andy Lutomirski <>,
        Tony Luck <>,
        Piotr Luc <>,
        Tom Lendacky <>,
        Fenghua Yu <>,
        Lu Baolu <>,
        Reza Arbab <>,
        David Howells <>,
        Matt Fleming <>,
        "Kirill A . Shutemov" <>,
        Laura Abbott <>,
        Ard Biesheuvel <>,
        Andrew Morton <>,
        Eric Biederman <>,
        Benjamin Herrenschmidt <>,
        Paul Mackerras <>,
        Konrad Rzeszutek Wilk <>,
        Jonathan Corbet <>,
        Dave Airlie <>,
        Kees Cook <>,
        Paolo Bonzini <>,
        Radim Krčmář <>,
        Arnd Bergmann <>, Tejun Heo <>,
        Christoph Lameter <>
Subject: Re: [RFC Part1 PATCH v3 16/17] X86/KVM: Provide support to create
 Guest and HV shared per-CPU variables

On Fri, Sep 1, 2017 at 3:52 PM, Brijesh Singh <> wrote:
> Hi Boris,
> On 08/30/2017 12:46 PM, Borislav Petkov wrote:
>> On Wed, Aug 30, 2017 at 11:18:42AM -0500, Brijesh Singh wrote:
>>> I was trying to avoid mixing early and no-early set_memory_decrypted()
>>> but if
>>> feedback is: use early_set_memory_decrypted() only if its required
>>> otherwise
>>> use set_memory_decrypted() then I can improve the logic in next rev.
>>> thanks
>> Yes, I think you should use the early versions when you're, well,
>> *early* :-) But get rid of that for_each_possible_cpu() and do it only
>> on the current CPU, as this is a per-CPU path anyway. If you need to
>> do it on *every* CPU and very early, then you need a separate function
>> which is called in kvm_smp_prepare_boot_cpu() as there you're pre-SMP.
> I am trying to implement your feedback and now remember why I choose to
> use early_set_memory_decrypted() and for_each_possible_cpu loop. These
> percpu variables are static. Hence before clearing the C-bit we must
> perform the in-place decryption so that original assignment is preserved
> after we change the C-bit. Tom's SME patch [1] added sme_early_decrypt()
> -- which can be used to perform the in-place decryption but we do not have
> similar routine for non-early cases. In order to address your feedback,
> we have to add similar functions. So far, we have not seen the need for
> having such functions except this cases. The approach we have right now
> works just fine and not sure if its worth adding new functions.
> Thoughts ?
> [1] Commit :7f8b7e7 x86/mm: Add support for early encryption/decryption of
> memory

Shouldn't this be called DEFINE_PER_CPU_UNENCRYPTED?  ISTM the "HV
shared" bit is incidental.

Powered by blists - more mailing lists