From: Juergen Gross <jgross@suse.com>
To: Toshi Kani <toshi.kani@hp.com>
Cc: stefan.bader@canonical.com, linux-kernel@vger.kernel.org,
xen-devel@lists.xensource.com, konrad.wilk@oracle.com,
ville.syrjala@linux.intel.com, hpa@zytor.com, x86@kernel.org
Subject: Re: [PATCH RFC 1/3] x86: Make page cache mode a real type
Date: Fri, 22 Aug 2014 07:25:35 +0200 [thread overview]
Message-ID: <53F6D44F.1060804@suse.com> (raw)
In-Reply-To: <1408658961.28990.74.camel@misato.fc.hp.com>
On 08/22/2014 12:09 AM, Toshi Kani wrote:
> On Tue, 2014-08-19 at 15:25 +0200, jgross@suse.com wrote:
>> From: Juergen Gross <jgross@suse.com>
>>
>> At the moment there are a lot of places that handle setting or getting
>> the page cache mode by treating the pgprot bits equal to the cache mode.
>> This is only true because there are a lot of assumptions about the setup
>> of the PAT MSR. Otherwise the cache type needs to get translated into
>> pgprot bits and vice versa.
>>
>> This patch tries to prepare for that by introducing a seperate type
>> for the cache mode and adding functions to translate between those and pgprot
>> values.
>>
>> To avoid too much performance penalty the translation between cache mode
>> and pgprot values is done via tables which contain the relevant information.
>> Write-back cache mode is hard-wired to be 0, all other modes are configurable
>> via those tables. For large pages there are translation functions as the
>> PAT bit is located at different positions in the ptes of 4k and large pages.
>
> One more comment below..
>
>> diff --git a/arch/x86/include/asm/cacheflush.h b/arch/x86/include/asm/cacheflush.h
> :
>> -static inline void set_page_memtype(struct page *pg, unsigned long memtype)
>> +static inline void set_page_memtype(struct page *pg,
>> + enum page_cache_mode memtype)
>> {
>> unsigned long memtype_flags = _PGMT_DEFAULT;
>> unsigned long old_flags;
>> unsigned long new_flags;
>>
>> switch (memtype) {
>> - case _PAGE_CACHE_WC:
>> + case _PAGE_CACHE_MODE_WC:
>> memtype_flags = _PGMT_WC;
>> break;
>> - case _PAGE_CACHE_UC_MINUS:
>> + case _PAGE_CACHE_MODE_UC_MINUS:
>> memtype_flags = _PGMT_UC_MINUS;
>> break;
>> - case _PAGE_CACHE_WB:
>> + case _PAGE_CACHE_MODE_WB:
>> + default:
>> memtype_flags = _PGMT_WB;
>> break;
>> }
>
> Adding the "default" case handled as _PGMT_WB is not correct here.
> free_ram_pages_type() calls set_page_memtype() with -1, which needs to
> be set to _PGMT_DEFAULT.
It says so in the comment above. I'll correct it, thanks.
Juergen
next prev parent reply other threads:[~2014-08-22 5:25 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-19 13:25 [PATCH RFC 0/3] x86: Full support of PAT jgross
2014-08-19 13:25 ` [PATCH RFC 1/3] x86: Make page cache mode a real type jgross
2014-08-20 19:26 ` Toshi Kani
2014-08-21 9:30 ` [Xen-devel] " Juergen Gross
2014-08-22 9:24 ` Jan Beulich
2014-08-22 9:24 ` Jan Beulich
2014-08-22 17:43 ` Toshi Kani
2014-08-21 22:09 ` Toshi Kani
2014-08-22 5:25 ` Juergen Gross [this message]
2014-08-19 13:25 ` [PATCH RFC 2/3] x86: Enable PAT to use cache mode translation tables jgross
2014-08-22 9:32 ` Jan Beulich
2014-08-22 9:32 ` [Xen-devel] " Jan Beulich
2014-08-25 12:22 ` Juergen Gross
2014-08-25 12:22 ` [Xen-devel] " Juergen Gross
2014-08-19 13:25 ` [PATCH RFC 3/3] Support Xen pv-domains using PAT jgross
2014-08-20 12:05 ` [PATCH RFC 0/3] x86: Full support of PAT One Thousand Gnomes
2014-08-20 12:05 ` One Thousand Gnomes
2014-08-20 12:21 ` [Xen-devel] " Jan Beulich
2014-08-20 12:21 ` Jan Beulich
2014-08-20 22:00 ` [Xen-devel] " H. Peter Anvin
2014-08-20 12:35 ` Juergen Gross
2014-08-20 21:59 ` H. Peter Anvin
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=53F6D44F.1060804@suse.com \
--to=jgross@suse.com \
--cc=hpa@zytor.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stefan.bader@canonical.com \
--cc=toshi.kani@hp.com \
--cc=ville.syrjala@linux.intel.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.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.