From: Joe Jin <email@example.com> To: Christoph Helwig <firstname.lastname@example.org> Cc: Boris Ostrovsky <email@example.com>, Konrad Rzeszutek Wilk <firstname.lastname@example.org>, "DONGLI.ZHANG" <email@example.com>, firstname.lastname@example.org, John Sobecki <email@example.com>, "firstname.lastname@example.org" <email@example.com>, "firstname.lastname@example.org" <email@example.com> Subject: Re: [PATCH] xen-swiotlb: exchange memory with Xen only when pages are contiguous Date: Fri, 26 Oct 2018 07:40:22 -0700 [thread overview] Message-ID: <firstname.lastname@example.org> (raw) In-Reply-To: <20181026074802.GA4768@lst.de> Hi Christoph, On 10/26/18 12:48 AM, Christoph Helwig wrote: > On Thu, Oct 25, 2018 at 11:56:02AM -0700, Joe Jin wrote: >> I just discussed this patch with Boris in private, his opinions(Boris, >> please correct me if any misunderstood) are: >> >> 1. With/without the check, both are incorrect, he thought we need to >> prevented unalloc'd free at here. >> 2. On freeing, if upper layer already checked the memory was DMA-able, >> the checking at here does not make sense, we can remove all checks. >> 3. xen_create_contiguous_region() and xen_destroy_contiguous_region() >> to come in pairs. >> >> For #1 and #3, I think we need something associate it, like a list, on >> allocating, add addr to it, on freeing, check if in the list. > > Is there any way to figure out based on an address if the exchange > operation happened? Read the code path and I was not found anywhere will store related info, on current code, it assuming if memory in DMA area also contiguous then it from Xen, most time it's true, but if lucky that __get_free_pages() returned memory is DMAable, it will not exchange with Xen, during my testing I observed same(Xen DMA heap increased). > >> For #2, I'm was not found anywhere validated the address on >> dma_free_coherent() callpath, not just xen-swiotlb. > > At least for simple direct mappings there is no easy way to verify that > without keeping a list, and for some of the ops that do vmap like> operations we have basic santiy checks, but nothing that really catches > a wrong free. I agree with you, add a list will help this issue, but it may introduce some performance issue, especially on heavy DMA system. Driver use DMA pool will help to avoid this issue, but not all kinds DMA ops are suitable to create a pool. Thanks, Joe
next prev parent reply other threads:[~2018-10-26 14:40 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-10-24 3:09 Joe Jin 2018-10-24 13:02 ` Konrad Rzeszutek Wilk 2018-10-24 13:57 ` Boris Ostrovsky 2018-10-24 14:43 ` Joe Jin 2018-10-25 11:45 ` Boris Ostrovsky 2018-10-25 14:23 ` Joe Jin 2018-10-25 16:10 ` Boris Ostrovsky 2018-10-25 16:28 ` Joe Jin 2018-10-25 18:56 ` Joe Jin 2018-10-26 7:48 ` Christoph Helwig 2018-10-26 8:54 ` Dongli Zhang 2018-10-26 14:48 ` Joe Jin 2018-10-26 14:40 ` Joe Jin [this message] 2018-10-30 2:51 ` Joe Jin [not found] ` <57e5593233c64dc0a36c7d4c750a1ed4@AMSPEX02CL03.citrite.net> 2018-10-30 14:12 ` [Xen-devel] " Joe Jin [not found] ` <097f1f6f16f7415aa3a52a7c4f5e52dc@AMSPEX02CL03.citrite.net> 2018-10-30 14:48 ` Joe Jin 2018-10-24 16:05 ` Joe Jin
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 \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [PATCH] xen-swiotlb: exchange memory with Xen only when pages are contiguous' \ /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
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).