lists.openwall.net   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  linux-cve-announce  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:   Wed, 01 Sep 2021 05:06:49 +0300
From:   Jarkko Sakkinen <jarkko@...nel.org>
To:     Tony Luck <tony.luck@...el.com>,
        Sean Christopherson <seanjc@...gle.com>,
        Dave Hansen <dave.hansen@...el.com>
Cc:     Cathy Zhang <cathy.zhang@...el.com>, x86@...nel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 0/6] Basic recovery for machine checks inside SGX

On Fri, 2021-08-27 at 12:55 -0700, Tony Luck wrote:
> Here's version 4 (just 38 more to go if I want to meet the bar set by
> the base SGX series :-) )
> 
> Changes since v3:
> 
> Dave Hansen:
> 	1) Concerns about assigning a default value to the "owner"
> 	   pointer if the caller of sgx_alloc_epc_page() called with
> 	   a NULL value.
> 	Resolved: Sean provided a patch to fix the only caller that
> 	was using NULL. I merged it in here.
> 
> 	2) Better commit message to explain why sgx_is_epc_page() is
> 	   exported.
> 	Done.
> 
> 	3) Unhappy with "void *owner" in struct sgx_epc_page. Would
> 	   be better to use an anonymous union of all the types.
> 	Done.
> 
> Sean Christopherson:
> 	1) Races updating bits in flags field.
> 	Resolved: "poison" is now a separate field.
> 
> 	2) More races. When poison alert happens while moving
> 	   a page on/off a free/dirty list.
> 	Resolved: Well mostly. All the run time changes are now
> 	done while holding the node->lock. There's a gap while
> 	moving pages from dirty list to free list. But that's
> 	a short-ish window during boot, and the races are mostly
> 	harmless. Worst is that we might call __eremove() for a
> 	page that just got marked as poisoned. But then
> 	sgx_free_epc_page() will see the poison flag and do the
> 	right thing.
> 
> Jarkko Sakkinen:
> 	1) Use xarray to keep track of which pages are the special
> 	   SGX EPC ones.
> 	This spawned a short discussion on whether it was overkill. But
> 	xarray makes the source much simpler, and there are improvements
> 	in the pipeline for xarray that will make it handle this use
> 	case more efficiently. So I made this change.
> 
> 	2) Move the sgx debugfs directory under arch_debugfs_dir.
> 	Done.
> 
> Tony Luck (6):
>   x86/sgx: Provide indication of life-cycle of EPC pages
>   x86/sgx: Add infrastructure to identify SGX EPC pages
>   x86/sgx: Initial poison handling for dirty and free pages
>   x86/sgx: Add SGX infrastructure to recover from poison
>   x86/sgx: Hook sgx_memory_failure() into mainline code
>   x86/sgx: Add hook to error injection address validation
> 
>  .../firmware-guide/acpi/apei/einj.rst         |  19 +++
>  arch/x86/include/asm/set_memory.h             |   4 +
>  arch/x86/kernel/cpu/sgx/encl.c                |   5 +-
>  arch/x86/kernel/cpu/sgx/encl.h                |   2 +-
>  arch/x86/kernel/cpu/sgx/ioctl.c               |   2 +-
>  arch/x86/kernel/cpu/sgx/main.c                | 140 ++++++++++++++++--
>  arch/x86/kernel/cpu/sgx/sgx.h                 |  14 +-
>  drivers/acpi/apei/einj.c                      |   3 +-
>  include/linux/mm.h                            |  15 ++
>  mm/memory-failure.c                           |  19 ++-
>  10 files changed, 196 insertions(+), 27 deletions(-)
> 
> 
> base-commit: e22ce8eb631bdc47a4a4ea7ecf4e4ba499db4f93

Would be nice to get this also to linux-sgx@...r.kernel.org in
future.

/Jarkko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ