[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <4AD5A4540200007800019CE9@vpn.id2.novell.com>
Date: Wed, 14 Oct 2009 09:13:40 +0100
From: "Jan Beulich" <JBeulich@...ell.com>
To: "Thomas Schlichter" <thomas.schlichter@....de>
Cc: "Jeremy Fitzhardinge" <jeremy.fitzhardinge@...rix.com>,
"Robert Hancock" <hancockrwd@...il.com>,
"Henrique de Moraes Holschuh" <hmh@....eng.br>,
"Suresh Siddha" <suresh.b.siddha@...el.com>,
"Venkatesh Pallipadi" <venkatesh.pallipadi@...el.com>,
"Tejun Heo" <tj@...nel.org>, <x86@...nel.org>,
"Yinghai Lu" <yinghai@...nel.org>,
"Thomas Gleixner" <tglx@...utronix.de>,
"Arjan van de Ven" <arjan@...ux.intel.com>,
<dri-devel@...ts.sourceforge.net>,
"Ingo Molnar" <mingo@...hat.com>, <linux-kernel@...r.kernel.org>,
<jbarnes@...tuousgeek.org>,
"Thomas Hellstrom" <thellstrom@...are.com>,
"H. Peter Anvin" <hpa@...or.com>
Subject: Re: [RFC Patch] use MTRR for write combining if PAT is not
available
>>> Thomas Schlichter <thomas.schlichter@....de> 13.10.09 23:29 >>>
>Jan Beulich wrote:
>> >>> Thomas Schlichter <thomas.schlichter@....de> 12.10.09 20:32 >>>
>> >+ if (!pat_enabled) {
>> >+ void __iomem *ret = ioremap_nocache(phys_addr, size);
>> >+ if (ret)
>> >+ mtrr_add(phys_addr, size, MTRR_TYPE_WRCOMB, false);
>>
>> This won't work if phys_addr or size aren't page aligned, or if size isn't
>> a power of two.
>
>No, at least the comments in mtrr_add and mtrr_check state that it is just
>required that phys_addr and size are multiple of PAGE_SIZE. And I'm not sure
>if it is always safe to round these up/down to the next PAGE boundary. If it
>is not, maybe it is better to fail...
That function isn't the limiting factor, generic_validate_add_page() is
what you need to look at (plus the spec on how the MTRR ranges are
calculated by the CPU from the base/mask register pairs).
Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists