All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: lkml@MoreThan.org
Cc: linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Andi Kleen <ak@linux.intel.com>
Subject: Re: [Bug Fix]: Do 32-bit table calculations in pre-processor
Date: Fri, 03 Jul 2009 11:57:44 -0700	[thread overview]
Message-ID: <4A4E54A8.4030606@goop.org> (raw)
In-Reply-To: <200907031314.36243.lkml@morethan.org>

[ Missed some recipients. ]

On 07/03/09 11:14, Michael S. Zick wrote:
> Here is one I have found useful in my VIA processor bug hunting:
>
> diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
> index 3068388..2303d86 100644
> --- a/arch/x86/kernel/head_32.S
> +++ b/arch/x86/kernel/head_32.S
> @@ -61,7 +61,7 @@
>
>  /* Enough space to fit pagetables for the low memory linear map */
>  MAPPING_BEYOND_END = \
> -       PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT
> +       PAGE_TABLE_SIZE((1<<20) - (__PAGE_OFFSET >> PAGE_SHIFT)) << PAGE_SHIFT
>
>   

These calculations are performed by the assembler, not the
preprocessor.  I think this transformation looks correct (in that its an
identity with the original), but my understanding is that the assembler
does it calculations in arbitrary precision, so there's no need to worry
about limiting the arithmetic to 32-bits.

>  /*
>   * Worst-case size of the kernel mapping we need to make:
>
> = = =
>
> Before:
>
>   #5 [0000010000 - 0000011000]          PGTABLE ==> [0000010000 - 0000011000]
>   #6 [0000011000 - 0000015000]          BOOTMAP ==> [0000011000 - 0000015000]
>
> After:
>
>   #5 [0000010000 - 000007d000]          PGTABLE ==> [0000010000 - 000007d000]
>   #6 [000007d000 - 0000081000]          BOOTMAP ==> [000007d000 - 0000081000]
>
> Someone who knows mm check which is the reasonable value please.
>   


The PGTABLE reservation seems much too big.  I think 1 page should be
sufficient for a system with large pages.  Even if not, 0x6d000 is way
too large.  And they symptoms of failing to reserve the initial
pagetable are pretty non-subtle.

    J

  parent reply	other threads:[~2009-07-03 18:57 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-03 18:14 [Bug Fix]: Do 32-bit table calculations in pre-processor Michael S. Zick
2009-07-03 18:27 ` Andi Kleen
2009-07-03 18:38   ` Michael S. Zick
2009-07-03 19:08     ` Jeremy Fitzhardinge
2009-07-03 19:13       ` Michael S. Zick
2009-07-03 19:30         ` Jeremy Fitzhardinge
2009-07-03 20:03           ` Michael S. Zick
2009-07-03 18:56 ` Jeremy Fitzhardinge
2009-07-03 18:57 ` Jeremy Fitzhardinge [this message]
2009-07-03 19:03   ` Michael S. Zick
2009-07-03 19:11     ` Jeremy Fitzhardinge
2009-07-03 19:18       ` H. Peter Anvin
2009-07-03 19:46         ` Michael S. Zick
2009-07-03 20:00           ` H. Peter Anvin
2009-07-03 19:14     ` H. Peter Anvin
2009-07-03 19:41       ` Michael S. Zick
2009-07-03 19:48         ` H. Peter Anvin
2009-07-03 20:38           ` Michael S. Zick
2009-07-03 20:40             ` H. Peter Anvin
2009-07-03 21:02               ` Michael S. Zick
2009-07-03 22:33                 ` H. Peter Anvin
2009-07-04  0:05                   ` Michael S. Zick
2009-07-04  0:11                     ` H. Peter Anvin
2009-07-03 22:01               ` Michael S. Zick
2009-07-04 13:23       ` Michael S. Zick
2009-07-03 19:33     ` Jeremy Fitzhardinge
2009-07-03 20:07 ` Yinghai Lu
2009-07-03 20:08   ` Yinghai Lu
2009-07-03 20:48     ` Michael S. Zick
2009-07-03 20:45   ` Michael S. Zick

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=4A4E54A8.4030606@goop.org \
    --to=jeremy@goop.org \
    --cc=ak@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@MoreThan.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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.