All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Venki Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Rufus & Azrael <rufus-azrael@numericable.fr>,
	Ingo Molnar <mingo@elte.hu>,
	"Siddha, Suresh B" <suresh.b.siddha@intel.com>,
	Linux-kernel Mailing List <linux-kernel@vger.kernel.org>,
	Yinghai Lu <yhlu.kernel@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [2.6.25-git18 => 2.6.26-rc1-git1] Xorg crash with	xf86MapVidMem error
Date: Thu, 08 May 2008 17:49:48 -0700	[thread overview]
Message-ID: <48239FAC.8070707@zytor.com> (raw)
In-Reply-To: <20080509003424.GA19710@linux-os.sc.intel.com>

Venki Pallipadi wrote:
> 
> What I meant was:
> MTRRs are not really base and size. They are defined as base and mask.
> Any addr is affected by mtrr if addr & mask == base & mask.
> So, MTRR entry like
> base = 0xf00000, mask = 0xff00000 with 36 bit physical address covers
> 0xf00000-0xffffff, 0x10f00000-0x10ffffff, 0x20f00000-0x20ffffff, ....
> 
> In this case if user is trying to mmap 0x1a000000-0x2a000000, we cannot really
> cover this case with single parsing of variable address ranges. We will have
> to go through the sub-ranges withing single variable range, which can be page
> by page in worst case.
>  

In practice, though, such MTRRs are never seen.  Even in the presence of 
such pathological MTRRs, I'm sure one can figure out a *much* smarter 
overlap algorithm.  I'd have to sit down and think about it, but I'm 
pretty sure one could; the basic observation, though, is that any set 
mask bit that are in a position <= floor(log2(range_len))-1 don't matter 
at all, since the range WILL end up covering both the 0 and the 1 case 
in this bit position.  At this point, you can test only a limited number 
of points (I *believe* you can reduce it down to only the beginning and 
the end, but I haven't proven that, so don't count on it yet.)

The key, of course, is to look for the case of multiple MTRRs matching 
the range.

	-hpa

  reply	other threads:[~2008-05-09  0:50 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-04  8:24 [2.6.25-git18 => 2.6.26-rc1-git1] Xorg crash with xf86MapVidMem error Rufus & Azrael
2008-05-04  8:52 ` Ingo Molnar
2008-05-04  9:03   ` Rufus & Azrael
2008-05-05 17:26     ` Suresh Siddha
2008-05-05 22:19       ` Rufus & Azrael
2008-05-05 23:25         ` Venki Pallipadi
2008-05-05 23:49           ` Ingo Molnar
2008-05-06  2:09             ` Venki Pallipadi
2008-05-06 11:55               ` Ingo Molnar
     [not found]                 ` <4820962B.6050702@numericable.fr>
2008-05-06 20:34                   ` Pallipadi, Venkatesh
2008-05-06 21:56                     ` Rufus & Azrael
2008-05-06 22:05                       ` Pallipadi, Venkatesh
2008-05-07 20:58                         ` Rufus & Azrael
2008-05-07 22:12                           ` Pallipadi, Venkatesh
2008-05-08  7:08                             ` Rufus & Azrael
2008-05-08 13:18                               ` Pallipadi, Venkatesh
     [not found]                               ` <B5B0CFF685D7DF46A05CF1678CFB42ED20E04609@orsmsx423.amr.corp.intel.com>
2008-05-08 19:25                                 ` Venki Pallipadi
2008-05-08 20:08                                   ` Rufus & Azrael
2008-05-08 21:37                                     ` Venki Pallipadi
2008-05-08 21:42                                       ` H. Peter Anvin
     [not found]                                         ` <20080508215931.GA5035@jamoon.sc.intel.com>
2008-05-08 23:40                                           ` Venki Pallipadi
2008-05-08 23:54                                             ` H. Peter Anvin
2008-05-09  0:34                                               ` Venki Pallipadi
2008-05-09  0:49                                                 ` H. Peter Anvin [this message]
2008-05-09  0:52                                                 ` H. Peter Anvin
2008-05-09 13:46                                                   ` Pallipadi, Venkatesh
2008-05-29 19:01                                                 ` Venki Pallipadi
2008-05-29 21:51                                                   ` Rufus & Azrael
2008-05-31  8:10                                                     ` Ingo Molnar
2008-05-06 22:51                 ` Venki Pallipadi
2008-05-07  7:06                   ` Ingo Molnar
2008-05-07 21:42 ` Yinghai Lu

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=48239FAC.8070707@zytor.com \
    --to=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rufus-azrael@numericable.fr \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=venkatesh.pallipadi@intel.com \
    --cc=yhlu.kernel@gmail.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.