public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Gerd Knorr <kraxel@bytesex.org>
To: Dave Jones <davej@redhat.com>,
	pawfen@wp.pl, Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org
Subject: Re: MTRR vesafb and wrong X performance
Date: Mon, 29 Nov 2004 17:22:42 +0100	[thread overview]
Message-ID: <20041129162242.GA25668@bytesex> (raw)
In-Reply-To: <20041129154006.GB3898@redhat.com>

On Mon, Nov 29, 2004 at 10:40:07AM -0500, Dave Jones wrote:
> On Mon, Nov 29, 2004 at 12:12:08PM +0100, Gerd Knorr wrote:
>  > > > Please send the full dmesg output and the contents of /proc/mtrr for
>  > > > 2.6.10-rc2.
>  > > reg02: base=0xe3000000 (3632MB), size=   4MB: write-combining, count=1
>  > > vesafb: framebuffer at 0xe3000000, mapped to 0xcc880000, using 1875k,
>  > > total 4096k
>  > 
>  > The BIOS reports 4MB video memory, and vesafb adds an mtrr entry for
>  > that.  Looks ok, with the exception that the reported 4MB are probably
>  > not correct, otherwise the X-Server wouldn't complain.
> 
> vesafb is assuming that the memory used in the current screen mode
> xres*yres*depth rounded up to nearest power of 2, is the amount of
> ram the card has, which is not just wrong, it's dumb.

It used to do that, but doesn't any more in 2.6.10-rc2.  Check the
current code please.

vesafb now distinguishes between the amount of memory needed for the
video mode (that is used for ioremap() to avoid wasting address space,
reported as "using" in the kernel message quoted above) and the total
amount of memory (used for ressource allocation and mtrr records,
reported as "total" in the message above).

>  > vesafb in 2.6.10-rc2 has a option to overwrite the BIOS-reported value
>  > (vtotal=n, with n in megabytes), that should fix it.
> 
> which is an ugly hack for the above problem imo.

The problem isn't vesafb, the problem is the BIOS.

On my machines it works perfectly fine.  One has a radeon with 64MB, the
other a good old matrox with 8MB video memory.  On both machines current
kernels correctly create mtrr records for the complete framebuffer, not
just the small piece actually used by vesafb for the fb console.

> vesafb:nomtrr also fixes the problem, and leaves X free
> to set things up correctly in my experience.

Yes, but that also results in a slow framebuffer console.

> If vesafb can't get it right, maybe it shouldn't be
> attempted to do it in the half-assed way it currently does.

Well, 2.6.10-rc1 + newer should get it right now.  We can't do much
about BIOS bugs through, other than maybe disabling mtrr by default
if too many machines are affected.

  Gerd

-- 
#define printk(args...) fprintf(stderr, ## args)

  reply	other threads:[~2004-11-29 16:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-24 23:15 MTRR vesafb and wrong X performance Pawel Fengler
2004-11-25  1:18 ` Andrew Morton
2004-11-25 21:56   ` Pawel Fengler
2004-11-29 11:12     ` Gerd Knorr
2004-11-29 15:40       ` Dave Jones
2004-11-29 16:22         ` Gerd Knorr [this message]
2004-11-29 16:57           ` Dave Jones
2004-11-29 17:34             ` Gerd Knorr
2004-11-29 17:22               ` Alan Cox
2004-11-29 18:17               ` Dave Jones
2004-11-29 17:23                 ` Alan Cox
2004-11-29 16:24         ` Alan Cox
2004-11-25  8:49 ` Gerd Knorr
  -- strict thread matches above, loose matches on Subject: below --
2004-11-26 16:48 Pawel Fengler

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=20041129162242.GA25668@bytesex \
    --to=kraxel@bytesex.org \
    --cc=akpm@osdl.org \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pawfen@wp.pl \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox