From: Vishal Annapurve <vannapurve@google.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
pbonzini@redhat.com, rientjes@google.com, seanjc@google.com,
erdemaktas@google.com, ackerleytng@google.com, jxgao@google.com,
sagis@google.com, oupton@google.com, peterx@redhat.com,
vkuznets@redhat.com, dmatlack@google.com, pgonda@google.com,
michael.roth@amd.com, kirill@shutemov.name,
thomas.lendacky@amd.com, dave.hansen@linux.intel.com,
linux-coco@lists.linux.dev, chao.p.peng@linux.intel.com,
isaku.yamahata@gmail.com, andrew.jones@linux.dev,
corbet@lwn.net, hch@lst.de, m.szyprowski@samsung.com,
rostedt@goodmis.org, iommu@lists.linux.dev
Subject: Re: [RFC V1 4/5] x86: CVMs: Allow allocating all DMA memory from SWIOTLB
Date: Thu, 1 Feb 2024 09:11:11 +0530 [thread overview]
Message-ID: <CAGtprH8AymwMJuvsTbGcLgbCOLB8q1M9LGYyPzPUbQQwvB0_eQ@mail.gmail.com> (raw)
In-Reply-To: <db477cef-f63b-4950-82b0-275bd10dbe5c@intel.com>
On Wed, Jan 31, 2024 at 9:47 PM Dave Hansen <dave.hansen@intel.com> wrote:
>
> On 1/11/24 21:52, Vishal Annapurve wrote:
> > --- a/arch/x86/mm/mem_encrypt.c
> > +++ b/arch/x86/mm/mem_encrypt.c
> > @@ -112,10 +112,14 @@ void __init mem_encrypt_setup_arch(void)
> > * The percentage of guest memory used here for SWIOTLB buffers
> > * is more of an approximation of the static adjustment which
> > * 64MB for <1G, and ~128M to 256M for 1G-to-4G, i.e., the 6%
> > + *
> > + * Extra 2% is added to accommodate the requirement of DMA allocations
> > + * done using dma_alloc_* APIs.
> > */
> > - size = total_mem * 6 / 100;
> > - size = clamp_val(size, IO_TLB_DEFAULT_SIZE, SZ_1G);
> > + size = total_mem * 8 / 100;
> > + size = clamp_val(size, IO_TLB_DEFAULT_SIZE, (SZ_1G + SZ_256M));
> > swiotlb_adjust_size(size);
> > + swiotlb_adjust_alignment(SZ_2M);
>
> FWIW, this appears superficially to just be fiddling with random
> numbers. The changelog basically says: "did stuff".
>
> What *are* "the requirement of DMA allocations done using dma_alloc_* APIs"?
dma_alloc_* invocations depend on the devices used and may change with
time, so it's difficult to calculate the memory required for such
allocations.
Though one could note following points about memory allocations done
using dma_alloc_* APIs:
1) They generally happen during early setup of device drivers.
2) They should be relatively smaller in size compared to runtime
memory allocation done by dma_map_* APIs.
This change increases the SWIOTLB memory area by 30% based on the
above observations. Strategy here would be to take a safe enough
heuristic and let dynamic SWIOTLB allocations to handle any spillover.
next prev parent reply other threads:[~2024-02-01 3:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-12 5:52 [RFC V1 0/5] x86: CVMs: Align memory conversions to 2M granularity Vishal Annapurve
2024-01-12 5:52 ` [RFC V1 1/5] swiotlb: Support allocating DMA memory from SWIOTLB Vishal Annapurve
2024-02-14 14:49 ` Kirill A. Shutemov
2024-02-15 3:33 ` Vishal Annapurve
2024-02-15 9:44 ` Alexander Graf
2024-02-15 20:26 ` Michael Kelley
2024-02-24 17:07 ` Vishal Annapurve
2024-02-24 22:02 ` Michael Kelley
2024-03-05 17:19 ` Vishal Annapurve
2024-01-12 5:52 ` [RFC V1 2/5] swiotlb: Allow setting up default alignment of SWIOTLB region Vishal Annapurve
2024-01-12 5:52 ` [RFC V1 3/5] x86: CVMs: Enable dynamic swiotlb by default for CVMs Vishal Annapurve
2024-02-01 12:20 ` Jeremi Piotrowski
2024-02-02 4:40 ` Vishal Annapurve
2024-01-12 5:52 ` [RFC V1 4/5] x86: CVMs: Allow allocating all DMA memory from SWIOTLB Vishal Annapurve
2024-01-31 16:17 ` Dave Hansen
2024-02-01 3:41 ` Vishal Annapurve [this message]
2024-01-12 5:52 ` [RFC V1 5/5] x86: CVMs: Ensure that memory conversions happen at 2M alignment Vishal Annapurve
2024-01-31 16:33 ` Dave Hansen
2024-02-01 3:46 ` Vishal Annapurve
2024-02-01 12:02 ` Jeremi Piotrowski
2024-02-02 5:08 ` Vishal Annapurve
2024-02-02 8:00 ` Jeremi Piotrowski
2024-02-02 16:22 ` Vishal Annapurve
2024-02-02 16:35 ` Dave Hansen
2024-02-03 5:19 ` Vishal Annapurve
2024-01-30 16:42 ` [RFC V1 0/5] x86: CVMs: Align memory conversions to 2M granularity Vishal Annapurve
2024-01-31 16:52 ` Dave Hansen
2024-02-01 5:44 ` Vishal Annapurve
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=CAGtprH8AymwMJuvsTbGcLgbCOLB8q1M9LGYyPzPUbQQwvB0_eQ@mail.gmail.com \
--to=vannapurve@google.com \
--cc=ackerleytng@google.com \
--cc=andrew.jones@linux.dev \
--cc=chao.p.peng@linux.intel.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dmatlack@google.com \
--cc=erdemaktas@google.com \
--cc=hch@lst.de \
--cc=iommu@lists.linux.dev \
--cc=isaku.yamahata@gmail.com \
--cc=jxgao@google.com \
--cc=kirill@shutemov.name \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=michael.roth@amd.com \
--cc=oupton@google.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=pgonda@google.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=sagis@google.com \
--cc=seanjc@google.com \
--cc=thomas.lendacky@amd.com \
--cc=vkuznets@redhat.com \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).