All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xenproject.org, ian.jackson@eu.citrix.com,
	patches@linaro.org
Subject: Re: [PATCH v6 08/10] xen/arm: Add relinquish_p2m_mapping to remove reference on every mapped page
Date: Tue, 17 Dec 2013 16:58:24 +0000	[thread overview]
Message-ID: <52B082B0.8030903@linaro.org> (raw)
In-Reply-To: <1387298217.1025.5.camel@dagon.hellion.org.uk>

On 12/17/2013 04:36 PM, Ian Campbell wrote:
> On Tue, 2013-12-17 at 16:27 +0000, Julien Grall wrote:
>> This function will be called when the domain relinquishes its memory.
>> It removes refcount on every mapped page to a valid MFN.
>>
>> Currently, Xen doesn't take reference on every new mapping but only for foreign
>> mapping. Restrict the function only on foreign mapping.
>>
>> Signed-off-by: Julien Grall <julien.grall@linaro.org>
>>
>> ---
>>     Changes in v6:
>>         - Typoes
>>         - Rework preempt
>>         - Clean up if ( p2mt == ... || p2mt == ... )
> 
> You don't seem to have addressed the issue I pointed out about
> create_p2m_entries exiting on any holes which it finds at the first or
> second level.
> 
> I think you missed my second reply to 08/10 on v5 see:
> <1387279904.27441.47.camel@kazak.uk.xensource.com>

Sorry I forgot to address your comment (see the copy of your email here):

> If this function finds any non-present first or second level PTE then it
> will stop and exit (goto out), meaning it will miss any mappings which
> are higher up after the hole.
>
> e.g. if you have a guest p2m with RAM at 0-2M and 4-6M then
> relinquishing 0-6M will only actually free 0-2M, then abort on 4-6M.
>
> Perhaps this could be fixed by making relinquish_p2m_mapping loop over
> the address space relinquishing 2M chunks as it goes? This would
remove
> the need for the if ( op == RELINQUISH && .. && prempt() ) stuff,
> because you could add the preempt in that loop.

I think you are wrong:
	- every first pte exists. We return NULL in case of the address is very
high.
        - if the second pte doesn't exist, we will create it (if it
fails we go out).

For the last item, I think it's a bit stupid to create table if we are
removing/relinquish mapping. But I think it's an improvement for later.
There are lots of improvement to do in this function (eg: flushing).

-- 
Julien Grall

  reply	other threads:[~2013-12-17 16:58 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-17 16:27 [PATCH v6 00/10] xen/arm: Handle correctly foreign mapping Julien Grall
2013-12-17 16:27 ` [PATCH v6 01/10] xen/arm: Introduce steps in domain_relinquish_resource Julien Grall
2013-12-17 16:27 ` [PATCH v6 02/10] xen/arm: move mfn_to_p2m_entry in arch/arm/p2m.c Julien Grall
2013-12-17 16:27 ` [PATCH v6 03/10] xen/arm: Implement p2m_type_t as an enum Julien Grall
2013-12-17 16:27 ` [PATCH v6 04/10] xen/arm: Store p2m type in each page of the guest Julien Grall
2013-12-18 14:18   ` Ian Campbell
2013-12-17 16:27 ` [PATCH v6 05/10] xen/arm: p2m: Extend p2m_lookup parameters to retrieve the p2m type Julien Grall
2013-12-17 16:27 ` [PATCH v6 06/10] xen/arm: Retrieve p2m type in get_page_from_gfn Julien Grall
2013-12-17 16:27 ` [PATCH v6 07/10] xen/arm: Handle remove foreign mapping Julien Grall
2013-12-17 16:27 ` [PATCH v6 08/10] xen/arm: Add relinquish_p2m_mapping to remove reference on every mapped page Julien Grall
2013-12-17 16:36   ` Ian Campbell
2013-12-17 16:58     ` Julien Grall [this message]
2013-12-17 17:02       ` Ian Campbell
2013-12-18 13:21         ` Ian Campbell
2013-12-18 13:30           ` Julien Grall
2013-12-18 14:06           ` Julien Grall
2013-12-18 14:12             ` Ian Campbell
2013-12-18 14:20   ` Ian Campbell
2013-12-18 16:48   ` Julien Grall
2013-12-18 16:50     ` Ian Campbell
2013-12-17 16:27 ` [PATCH v6 09/10] xen/arm: Set foreign page type to p2m_map_foreign Julien Grall
2013-12-17 16:27 ` [PATCH v6 10/10] xen/arm: grant-table: Support read-only mapping Julien Grall
2013-12-18 14:41 ` [PATCH v6 00/10] xen/arm: Handle correctly foreign mapping Ian Campbell

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=52B082B0.8030903@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=patches@linaro.org \
    --cc=xen-devel@lists.xenproject.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 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.