From mboxrd@z Thu Jan 1 00:00:00 1970 From: Borislav Petkov Subject: Re: [RFC PATCH v4 27/28] x86: Add support to encrypt the kernel in-place Date: Thu, 2 Mar 2017 19:51:51 +0100 Message-ID: <20170302185151.nllxa4hty3tukfkr@pd.tnic> References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> <20170216154808.19244.475.stgit@tlendack-t1.amdoffice.net> <20170301173623.zcf35xgyrhmo25a7@pd.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Tom Lendacky Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?B?S3LEjW3DocWZ?= , Matt Fleming , x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Jonathan Corbet , linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kasan-dev-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org, Ingo Molnar , Andrey Ryabinin , Rik van Riel , Arnd Bergmann , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, "Michael S. Tsirkin" , Paolo Bonzini List-Id: linux-efi@vger.kernel.org On Thu, Mar 02, 2017 at 12:30:31PM -0600, Tom Lendacky wrote: > The "* 2" here and above is that a PUD and a PMD is needed for both > the encrypted and decrypted mappings. I'll add a comment to clarify > that. Ah, makes sense. Definitely needs a comment. > Yup, I can do that here too (but need PGDIR_SIZE). Right, I did test and wanted to write PGDIR_SIZE but then ... I guess something distracted me :-) > So next_page is the first free page within the workarea in which a > pagetable entry (PGD, PUD or PMD) can be created when we are populating > the new mappings or adding the workarea to the current mapping. Any > new pagetable structures that are created will use this value. Ok, so I guess this needs an overview comment with maybe some ascii showing how workarea, exec_size, full_size and all those other things play together. > Ok, I'll work on the comment. Something along the line of: > > /* > * The encrypted mapping of the kernel will use identity mapped > * virtual addresses. A different PGD index/entry must be used to > * get different pagetable entries for the decrypted mapping. > * Choose the next PGD index and convert it to a virtual address > * to be used as the base of the mapping. Better. > Except the workarea size includes both the encryption execution > size and the pagetable structure size. I'll work on this to try > and clarify it better. That's a useful piece of info, yap, the big picture could use some more explanation. > Most definitely. I appreciate the feedback since I'm very close to > the code and have an understanding of what I'm doing. I'd like to be > sure that everyone can easily understand what is happening. Nice! Thanks. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.