All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Andi Kleen <ak@linux.intel.com>
Cc: linux-kernel@vger.kernel.org,
	Kuppuswamy Sathyanarayanan 
	<sathyanarayanan.kuppuswamy@linux.intel.com>
Subject: Re: [PATCH v5 16/16] x86/tdx: Add cmdline option to force use of ioremap_host_shared
Date: Sun, 17 Oct 2021 18:34:56 -0400	[thread overview]
Message-ID: <20211017182145-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <d5e755fd-41a7-7c3f-f540-094c1c583365@linux.intel.com>

On Fri, Oct 15, 2021 at 06:34:17AM -0700, Andi Kleen wrote:
> cutting down the insane cc list.
> 
> On 10/14/2021 11:57 PM, Michael S. Tsirkin wrote:
> > On Thu, Oct 14, 2021 at 10:50:59PM -0700, Andi Kleen wrote:
> > > > I thought you basically create an OperationRegion of SystemMemory type,
> > > > and off you go. Maybe the OSPM in Linux is clever and protects
> > > > some memory, I wouldn't know.
> > > 
> > > I investigated this now, and it looks like acpi is using ioremap_cache(). We
> > > can hook into that and force non sharing. It's probably safe to assume that
> > > this is not used on real IO devices.
> > > 
> > > I think there are still some other BIOS mappings that use just plain
> > > ioremap() though.
> > > 
> > > 
> > > -Andi
> > Hmm don't you mean the reverse? If you make ioremap shared then OS is
> > protected from malicious ACPI?
> 
> 
> Nope
> 
> >   If you don't make it shared then
> > malicious ACPI can poke at arbitrary OS memory.
> 
> 
> When it's private it's protected and when it's shared it can be attacked
> 
> 
> > 
> > For BIOS I suspect there's no way around it, it needs to be
> > audited since it's executable.
> 
> 
> The guest BIOS is attested and trusted. The original ACPI tables by the BIOS
> are attested and trusted too.
> 
> Just if we map the ACPI tables temporarily shared then an evil hypervisor
> could modify them during that time window.
> 
> -Andi

I thought some more about it.

Fundamentally, ACPI has these types of OperationRegions:
SystemIO | SystemMemory | PCI_Config | EmbeddedControl | SMBus | SystemCMOS | 
PciBarTarget | IPMI | GeneralPurposeIO | GenericSerialBus |
PCC

Now, SystemMemory can be used to talk to either BIOS (should be
encrypted) or hypervisor (should not be encrypted).

I think it's not a great idea to commit to either, or teach users
to hack around it with command line flags.  Instead
there should be a new SystemMemoryUnencrypted API for interface with
the hypervisor. Can you guys propose this at the ACPI spec?
If not but at least we are in agreement I guess I can try to do it,
have a bit of experience with the ACPI spec.

And I assume PciBarTarget should be unencrypted so it can work.

-- 
MST


      reply	other threads:[~2021-10-17 22:41 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-09  0:36 [PATCH v5 00/16] Add TDX Guest Support (shared-mm support) Kuppuswamy Sathyanarayanan
2021-10-09  0:36 ` [PATCH v5 01/16] x86/mm: Move force_dma_unencrypted() to common code Kuppuswamy Sathyanarayanan
2021-10-20 16:11   ` Tom Lendacky
2021-10-20 16:11     ` Tom Lendacky
2021-10-20 16:11     ` Tom Lendacky via Virtualization
2021-10-20 16:43     ` Sathyanarayanan Kuppuswamy
2021-10-09  0:36 ` [PATCH v5 02/16] x86/tdx: Get TD execution environment information via TDINFO Kuppuswamy Sathyanarayanan
2021-10-09  0:36 ` [PATCH v5 03/16] x86/tdx: Exclude Shared bit from physical_mask Kuppuswamy Sathyanarayanan
2021-11-05 22:11   ` Sean Christopherson
2021-11-05 22:11     ` Sean Christopherson
2021-11-08 14:45     ` Kirill A. Shutemov
2021-11-08 14:45       ` Kirill A. Shutemov
2021-11-08 14:45       ` Kirill A. Shutemov
2021-10-09  0:36 ` [PATCH v5 04/16] x86/tdx: Make pages shared in ioremap() Kuppuswamy Sathyanarayanan
2021-10-20 16:03   ` Tom Lendacky
2021-10-20 16:03     ` Tom Lendacky
2021-10-20 16:03     ` Tom Lendacky via Virtualization
2021-10-20 16:41     ` Sathyanarayanan Kuppuswamy
2021-10-09  0:37 ` [PATCH v5 05/16] x86/tdx: Add helper to do MapGPA hypercall Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 06/16] x86/tdx: Make DMA pages shared Kuppuswamy Sathyanarayanan
2021-10-20 16:33   ` Tom Lendacky
2021-10-20 16:33     ` Tom Lendacky
2021-10-20 16:33     ` Tom Lendacky via Virtualization
2021-10-20 16:45     ` Sathyanarayanan Kuppuswamy
2021-10-20 17:22       ` Tom Lendacky
2021-10-20 17:22         ` Tom Lendacky
2021-10-20 17:22         ` Tom Lendacky via Virtualization
2021-10-20 17:26         ` Sathyanarayanan Kuppuswamy
2021-10-09  0:37 ` [PATCH v5 07/16] x86/kvm: Use bounce buffers for TD guest Kuppuswamy Sathyanarayanan
2021-10-20 16:39   ` Tom Lendacky
2021-10-20 16:39     ` Tom Lendacky
2021-10-20 16:39     ` Tom Lendacky via Virtualization
2021-10-20 16:50     ` Sathyanarayanan Kuppuswamy
2021-10-20 17:26       ` Tom Lendacky
2021-10-20 17:26         ` Tom Lendacky
2021-10-20 17:26         ` Tom Lendacky via Virtualization
2021-10-09  0:37 ` [PATCH v5 08/16] x86/tdx: ioapic: Add shared bit for IOAPIC base address Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 09/16] x86/tdx: Enable shared memory confidential guest flags for TDX guest Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 10/16] PCI: Consolidate pci_iomap_range(), pci_iomap_wc_range() Kuppuswamy Sathyanarayanan
2021-10-09  0:37   ` Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 11/16] asm/io.h: Add ioremap_host_shared fallback Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 12/16] PCI: Add pci_iomap_host_shared(), pci_iomap_host_shared_range() Kuppuswamy Sathyanarayanan
2021-10-09  9:53   ` Michael S. Tsirkin
2021-10-09  9:53     ` Michael S. Tsirkin
2021-10-09  9:53     ` Michael S. Tsirkin
2021-10-09 20:39     ` Dan Williams
2021-10-09 20:39       ` Dan Williams
2021-10-09 20:39       ` Dan Williams
2021-10-10 22:11       ` Andi Kleen
2021-10-10 22:11         ` Andi Kleen
2021-10-10 22:11         ` Andi Kleen
2021-10-12 17:42         ` Dan Williams
2021-10-12 17:42           ` Dan Williams
2021-10-12 17:42           ` Dan Williams
2021-10-12 18:35           ` Andi Kleen
2021-10-12 18:35             ` Andi Kleen
2021-10-12 18:35             ` Andi Kleen
2021-10-12 21:14             ` Dan Williams
2021-10-12 21:14               ` Dan Williams
2021-10-12 21:14               ` Dan Williams
2021-10-12 21:18               ` Michael S. Tsirkin
2021-10-12 21:18                 ` Michael S. Tsirkin
2021-10-12 21:18                 ` Michael S. Tsirkin
2021-10-12 21:24                 ` Andi Kleen
2021-10-12 21:24                   ` Andi Kleen
2021-10-12 21:24                   ` Andi Kleen
2021-10-12 21:28               ` Andi Kleen
2021-10-12 21:28                 ` Andi Kleen
2021-10-12 21:28                 ` Andi Kleen
2021-10-12 22:00                 ` Dan Williams
2021-10-12 22:00                   ` Dan Williams
2021-10-12 22:00                   ` Dan Williams
2021-10-18 12:13             ` Greg KH
2021-10-18 12:13               ` Greg KH
2021-10-18 12:13               ` Greg KH
2021-10-12 18:36         ` Reshetova, Elena
2021-10-12 18:36           ` Reshetova, Elena
2021-10-12 18:38           ` Andi Kleen
2021-10-12 18:38             ` Andi Kleen
2021-10-12 18:38             ` Andi Kleen
2021-10-12 18:57             ` Reshetova, Elena
2021-10-12 18:57               ` Reshetova, Elena
2021-10-12 19:13               ` Dan Williams
2021-10-12 19:13                 ` Dan Williams
2021-10-12 19:13                 ` Dan Williams
2021-10-12 19:49                 ` Andi Kleen
2021-10-12 19:49                   ` Andi Kleen
2021-10-12 19:49                   ` Andi Kleen
2021-10-12 21:11           ` Michael S. Tsirkin
2021-10-12 21:11             ` Michael S. Tsirkin
2021-10-12 21:11             ` Michael S. Tsirkin
2021-10-14  6:32             ` Reshetova, Elena
2021-10-14  6:32               ` Reshetova, Elena
2021-10-14  6:57               ` Michael S. Tsirkin
2021-10-14  6:57                 ` Michael S. Tsirkin
2021-10-14  6:57                 ` Michael S. Tsirkin
2021-10-14  7:27                 ` Reshetova, Elena
2021-10-14  7:27                   ` Reshetova, Elena
2021-10-14  9:26                   ` Michael S. Tsirkin
2021-10-14  9:26                     ` Michael S. Tsirkin
2021-10-14  9:26                     ` Michael S. Tsirkin
2021-10-14 12:33                     ` Reshetova, Elena
2021-10-14 12:33                       ` Reshetova, Elena
2021-10-17 22:17                       ` Michael S. Tsirkin
2021-10-17 22:17                         ` Michael S. Tsirkin
2021-10-17 22:17                         ` Michael S. Tsirkin
2021-10-14 11:49                   ` Michael S. Tsirkin
2021-10-14 11:49                     ` Michael S. Tsirkin
2021-10-14 11:49                     ` Michael S. Tsirkin
2021-10-17 21:52               ` Thomas Gleixner
2021-10-17 21:52                 ` Thomas Gleixner
2021-10-17 21:52                 ` Thomas Gleixner
2021-10-18  7:03                 ` Reshetova, Elena
2021-10-18  7:03                   ` Reshetova, Elena
2021-10-18  0:55         ` Thomas Gleixner
2021-10-18  0:55           ` Thomas Gleixner
2021-10-18  0:55           ` Thomas Gleixner
2021-10-18  1:10           ` Thomas Gleixner
2021-10-18  1:10             ` Thomas Gleixner
2021-10-18  1:10             ` Thomas Gleixner
2021-10-18 12:08         ` Greg KH
2021-10-18 12:08           ` Greg KH
2021-10-18 12:08           ` Greg KH
2021-10-10 22:22     ` Andi Kleen
2021-10-10 22:22       ` Andi Kleen
2021-10-10 22:22       ` Andi Kleen
2021-10-11 11:59       ` Michael S. Tsirkin
2021-10-11 11:59         ` Michael S. Tsirkin
2021-10-11 11:59         ` Michael S. Tsirkin
2021-10-11 17:32         ` Andi Kleen
2021-10-11 17:32           ` Andi Kleen
2021-10-11 17:32           ` Andi Kleen
2021-10-11 18:22           ` Michael S. Tsirkin
2021-10-11 18:22             ` Michael S. Tsirkin
2021-10-11 18:22             ` Michael S. Tsirkin
2021-10-18 12:15         ` Greg KH
2021-10-18 12:15           ` Greg KH
2021-10-18 12:15           ` Greg KH
2021-10-18 13:17           ` Michael S. Tsirkin
2021-10-18 13:17             ` Michael S. Tsirkin
2021-10-18 13:17             ` Michael S. Tsirkin
2021-10-11  7:58   ` Christoph Hellwig
2021-10-11  7:58     ` Christoph Hellwig
2021-10-11  7:58     ` Christoph Hellwig
2021-10-11 17:23     ` Andi Kleen
2021-10-11 17:23       ` Andi Kleen
2021-10-11 17:23       ` Andi Kleen
2021-10-11 19:09       ` Michael S. Tsirkin
2021-10-11 19:09         ` Michael S. Tsirkin
2021-10-11 19:09         ` Michael S. Tsirkin
2021-10-12  5:31         ` Christoph Hellwig
2021-10-12  5:31           ` Christoph Hellwig
2021-10-12  5:31           ` Christoph Hellwig
2021-10-12 18:37           ` Andi Kleen
2021-10-12 18:37             ` Andi Kleen
2021-10-12 18:37             ` Andi Kleen
2021-10-09  0:37 ` [PATCH v5 13/16] PCI: Mark MSI data shared Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 14/16] virtio: Use shared mappings for virtio PCI devices Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 15/16] x86/tdx: Implement ioremap_host_shared for x86 Kuppuswamy Sathyanarayanan
2021-10-09  0:37 ` [PATCH v5 16/16] x86/tdx: Add cmdline option to force use of ioremap_host_shared Kuppuswamy Sathyanarayanan
2021-10-09  1:45   ` Randy Dunlap
2021-10-09  1:45     ` Randy Dunlap
2021-10-09  1:45     ` Randy Dunlap
2021-10-09  2:10     ` Kuppuswamy, Sathyanarayanan
2021-10-09 11:04   ` Michael S. Tsirkin
2021-10-09 11:04     ` Michael S. Tsirkin
2021-10-09 11:04     ` Michael S. Tsirkin
2021-10-11  2:39     ` Andi Kleen
2021-10-11  2:39       ` Andi Kleen
2021-10-11  2:39       ` Andi Kleen
2021-10-11 12:04       ` Michael S. Tsirkin
2021-10-11 12:04         ` Michael S. Tsirkin
2021-10-11 12:04         ` Michael S. Tsirkin
2021-10-11 17:35         ` Andi Kleen
2021-10-11 17:35           ` Andi Kleen
2021-10-11 17:35           ` Andi Kleen
2021-10-11 18:28           ` Michael S. Tsirkin
2021-10-11 18:28             ` Michael S. Tsirkin
2021-10-11 18:28             ` Michael S. Tsirkin
2021-10-12 17:55             ` Andi Kleen
2021-10-12 17:55               ` Andi Kleen
2021-10-12 17:55               ` Andi Kleen
2021-10-12 20:59               ` Michael S. Tsirkin
2021-10-12 20:59                 ` Michael S. Tsirkin
2021-10-12 20:59                 ` Michael S. Tsirkin
2021-10-12 21:18                 ` Andi Kleen
2021-10-12 21:18                   ` Andi Kleen
2021-10-12 21:18                   ` Andi Kleen
2021-10-12 21:30                   ` Michael S. Tsirkin
2021-10-12 21:30                     ` Michael S. Tsirkin
2021-10-12 21:30                     ` Michael S. Tsirkin
2021-10-15  5:50                     ` Andi Kleen
2021-10-15  5:50                       ` Andi Kleen
2021-10-15  5:50                       ` Andi Kleen
2021-10-15  6:57                       ` Michael S. Tsirkin
2021-10-15  6:57                         ` Michael S. Tsirkin
2021-10-15  6:57                         ` Michael S. Tsirkin
2021-10-15 13:34                         ` Andi Kleen
2021-10-17 22:34                           ` Michael S. Tsirkin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211017182145-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.