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: vijay.kilari@gmail.com, stefano.stabellini@eu.citrix.com,
	Prasun.Kapoor@caviumnetworks.com,
	vijaya.kumar@caviumnetworks.com, tim@xen.org,
	xen-devel@lists.xen.org, stefano.stabellini@citrix.com,
	manish.jaggi@caviumnetworks.com
Subject: Re: [PATCH v1] xen/arm: Do not allocate pte entries for MAP_SMALL_PAGES
Date: Tue, 24 Feb 2015 09:38:33 +0000	[thread overview]
Message-ID: <54EC4699.8050905@linaro.org> (raw)
In-Reply-To: <1424770282.27930.259.camel@citrix.com>

Hi Ian,

On 24/02/2015 09:31, Ian Campbell wrote:
> On Wed, 2015-02-18 at 13:03 +0000, Julien Grall wrote:
>>> +                {
>>> +                    pte = mfn_to_xen_entry(mfn, (ai & 0xffff));
>>
>> Please introduce a new macro for the mask.
>
> Better would be a pte_foo accessor, similar (if not identical) to x86's
> pte_get_flags. So pte_get_flags(ai) or so.

I'm not able to find a such function in x86. Did you intend to mean 
pte_flags_to_cacheattr?

>
>>
>>> +                    pte.pt.table = 1;
>>> +                    write_pte(&third[third_table_offset(addr)], pte);
>>> +                }
>>>                    break;
>>>                case REMOVE:
>>>                    if ( !third[third_table_offset(addr)].pt.valid )
>>> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
>>> index 3e7b0ae..80415b3 100644
>>> --- a/xen/include/asm-arm/page.h
>>> +++ b/xen/include/asm-arm/page.h
>>> @@ -61,10 +61,16 @@
>>>    #define DEV_WC        BUFFERABLE
>>>    #define DEV_CACHED    WRITEBACK
>>>
>>> +/* bit 16 in the Attribute index can be used to know if
>>> + * PTE entry should be added or not. This is useful
>>> + * when ONLY non-leaf page table entries need to allocated
>>> + */
>>> +#define PTE_INVALID   (0x1 << 16)
>>
>> It makes more sense to introduce a PTE_PRESENT flags compare to
>> PTE_INVALID. The former has more meaning that the latter.
>
> Agreed that PTE_PRESENT is the way to go. Ideally this could all be done
> via the lpae_pt_t type, but I suspect that might turn out to be tricky.

I don't think it's a good idea to re-use lpae_pt_t type for this 
purpose. We might decide to introduce flags which won't be set in the 
final PTE.

In another side, using PTE_PRESENT would require to introduce a 
PAGE_AVAIL0 (or smth similar).

> #define PTE_PRESENT ((struct lpae_t){ .pt.present = 1 }).bits
>
> probably doesn't work, I'm not even sure if this sort of thing is
> possible. If not then "#define PTE_PRESET (1ULL<<0)".

The attribute index (write-alloc, buferrable...) is using the less 
significant 3 bits. So I was suggesting to use the top of the word.

Regards,

-- 
Julien Grall

  reply	other threads:[~2015-02-24  9:38 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18 12:56 [PATCH v1] xen/arm: Do not allocate pte entries for MAP_SMALL_PAGES vijay.kilari
2015-02-18 13:03 ` Julien Grall
2015-02-24  9:31   ` Ian Campbell
2015-02-24  9:38     ` Julien Grall [this message]
2015-02-24 10:17       ` Jan Beulich
2015-02-24 10:26       ` Ian Campbell
2015-02-24 12:59         ` Julien Grall
2015-02-24 13:13           ` Ian Campbell
2015-02-24 13:47             ` Julien Grall
2015-02-24 13:54               ` Jan Beulich
2015-03-03  7:58           ` Vijay Kilari
2015-03-03 10:27             ` Ian Campbell
2015-03-03 11:17               ` Julien Grall
2015-03-03 11:47                 ` Ian Campbell
2015-03-03 11:51                   ` Julien Grall
2015-03-03 11:57                     ` 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=54EC4699.8050905@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Prasun.Kapoor@caviumnetworks.com \
    --cc=ian.campbell@citrix.com \
    --cc=manish.jaggi@caviumnetworks.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tim@xen.org \
    --cc=vijay.kilari@gmail.com \
    --cc=vijaya.kumar@caviumnetworks.com \
    --cc=xen-devel@lists.xen.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.