From: Linus Torvalds <torvalds@linux-foundation.org>
To: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Jeff Garzik <jeff@garzik.org>, Tejun Heo <htejun@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
David Witbrodt <dawitbro@sbcglobal.net>,
Andrew Morton <akpm@linux-foundation.org>,
Kernel Testers <kernel-testers@vger.kernel.org>
Subject: Re: Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4dfdb8c0591f545ba749dd
Date: Fri, 29 Aug 2008 20:15:35 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0808292010260.5010@nehalem.linux-foundation.org> (raw)
In-Reply-To: <alpine.LFD.1.10.0808291954410.3300@nehalem.linux-foundation.org>
On Fri, 29 Aug 2008, Linus Torvalds wrote:
>
> and while I still haven't actually tested it, it looks sane and compiles
> to code that also looks sane.
.. and it even works (apart from a missing '\n' for the expansion report
;).
I tested it with the appended silly test-case, and it shows
...
BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000160000000 (usable)
Expanded resource Kernel dummy due to conflict with Kernel code
Expanded resource Kernel dummy due to conflict with Kernel data
last_pfn = 0x160000 max_arch_pfn = 0x3ffffffff
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
...
and /proc/iomem shows
...
00100000-9cf64fff : System RAM
00200000-006ea27f : Kernel dummy
00200000-00561f37 : Kernel code
00561f38-006ea27f : Kernel data
00777000-007d6cc7 : Kernel bss
...
so it correctly expanded that "Kernel dummy" resource to cover the
resources it had clashed with.
And no, it's not perfect. We certainly _could_ split things instead. But I
hope that odd "e820 resources were bogus" case almost never would actually
trigger in practice, and the expansion case is not only simpler, it's also
slightly more robust in the sense that a single big resource is likely to
fit the things we need than multiple smaller resources that have been
chopped up.
Linus
--- dummy test patch for the 'insert-resource-expand-to-fit' thing ---
arch/x86/kernel/setup.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 362d4e7..6265a38 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -578,6 +578,14 @@ static struct x86_quirks default_x86_quirks __initdata;
struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
+static struct resource dummy_resource = {
+ .name = "Kernel dummy",
+ .start = 0,
+ .end = 0,
+ .flags = IORESOURCE_BUSY | IORESOURCE_MEM
+};
+
+
/*
* Determine if we were loaded by an EFI loader. If so, then we have also been
* passed the efi memmap, systab, etc., so we should use these data structures
@@ -665,6 +673,9 @@ void __init setup_arch(char **cmdline_p)
bss_resource.start = virt_to_phys(&__bss_start);
bss_resource.end = virt_to_phys(&__bss_stop)-1;
+ dummy_resource.start = code_resource.end - 1024;
+ dummy_resource.end = data_resource.start + 1024;
+
strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
@@ -704,6 +715,8 @@ void __init setup_arch(char **cmdline_p)
insert_resource(&iomem_resource, &data_resource);
insert_resource(&iomem_resource, &bss_resource);
+ insert_resource_expand_to_fit(&iomem_resource, &dummy_resource);
+
if (efi_enabled)
efi_init();
next prev parent reply other threads:[~2008-08-30 3:16 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-28 23:26 Linux 2.6.27-rc5 Linus Torvalds
2008-08-29 15:42 ` cpu time oddity (was Re: Linux 2.6.27-rc5) Alistair John Strachan
2008-08-29 15:56 ` Alistair John Strachan
2008-08-29 17:13 ` Linux 2.6.27-rc5 Rafael J. Wysocki
2008-08-29 19:57 ` Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4dfdb8c0591f545ba749dd Rafael J. Wysocki
2008-08-29 21:13 ` Yinghai Lu
2008-08-29 21:19 ` Yinghai Lu
2008-08-29 22:32 ` Rafael J. Wysocki
2008-08-29 22:31 ` Rafael J. Wysocki
2008-08-29 23:24 ` Yinghai Lu
2008-08-30 0:08 ` Linus Torvalds
2008-08-30 0:11 ` Yinghai Lu
2008-08-30 0:45 ` Linus Torvalds
2008-08-30 1:11 ` Linus Torvalds
2008-08-30 1:30 ` Yinghai Lu
2008-08-30 2:33 ` Linus Torvalds
2008-08-30 2:56 ` Linus Torvalds
2008-08-30 3:07 ` Yinghai Lu
2008-08-30 3:24 ` Linus Torvalds
2008-08-30 4:41 ` Yinghai Lu
2008-08-30 5:02 ` Yinghai Lu
2008-08-30 5:52 ` Linus Torvalds
2008-08-30 6:18 ` Linus Torvalds
2008-08-30 8:02 ` Yinghai Lu
2008-08-30 5:22 ` Yinghai Lu
2008-08-30 6:11 ` Linus Torvalds
2008-08-30 3:15 ` Linus Torvalds [this message]
2008-08-30 3:00 ` Yinghai Lu
2008-08-30 3:10 ` Linus Torvalds
2008-08-30 1:14 ` Yinghai Lu
2008-08-30 2:16 ` Linus Torvalds
2008-08-30 2:29 ` Yinghai Lu
2008-08-30 0:20 ` Yinghai Lu
2008-08-30 0:27 ` Yinghai Lu
2008-08-30 13:32 ` Rafael J. Wysocki
2008-08-30 16:05 ` Yinghai Lu
2008-08-30 17:14 ` Rafael J. Wysocki
2008-08-30 17:55 ` Yinghai Lu
2008-08-30 18:11 ` Yinghai Lu
2008-08-30 19:06 ` Yinghai Lu
2008-08-30 19:51 ` Rafael J. Wysocki
2008-08-30 20:10 ` Yinghai Lu
2008-08-29 21:44 ` Linus Torvalds
2008-08-29 22:30 ` Rafael J. Wysocki
2008-08-30 17:39 ` Linus Torvalds
2008-08-30 18:07 ` Yinghai Lu
2008-08-30 18:43 ` Linus Torvalds
2008-08-30 19:10 ` Yinghai Lu
2008-08-30 19:31 ` Linus Torvalds
2008-08-30 20:14 ` Yinghai Lu
2008-08-30 20:38 ` Yinghai Lu
2008-08-30 20:46 ` Rafael J. Wysocki
2008-08-30 21:12 ` Yinghai Lu
2008-08-30 21:13 ` Yinghai Lu
2008-08-30 21:34 ` Rafael J. Wysocki
2008-08-30 21:49 ` Yinghai Lu
2008-08-31 1:10 ` Yinghai Lu
2008-08-31 12:27 ` Rafael J. Wysocki
2008-08-31 17:42 ` Linus Torvalds
2008-08-31 17:54 ` Yinghai Lu
2008-08-31 18:03 ` Linus Torvalds
2008-08-31 21:03 ` Yinghai Lu
2008-09-01 17:53 ` Linus Torvalds
2008-08-30 22:41 ` Linus Torvalds
2008-08-30 22:50 ` Yinghai Lu
2008-08-30 23:28 ` Linus Torvalds
2008-08-30 23:39 ` Yinghai Lu
2008-08-31 0:27 ` Yinghai Lu
2008-08-31 0:50 ` Yinghai Lu
2008-08-31 3:00 ` Linus Torvalds
2008-08-31 3:53 ` Yinghai Lu
2008-08-31 3:58 ` Linus Torvalds
2008-08-31 4:12 ` Linus Torvalds
2008-08-30 19:14 ` Linus Torvalds
2008-08-30 19:26 ` Yinghai Lu
2008-08-30 19:41 ` Linus Torvalds
2008-08-30 19:48 ` Yinghai Lu
2008-08-30 19:29 ` Rafael J. Wysocki
2008-08-30 19:29 ` Yinghai Lu
2008-08-30 19:20 ` Rafael J. Wysocki
2008-08-29 22:34 ` Jeff Garzik
2008-08-29 22:47 ` Rafael J. Wysocki
2008-08-30 10:34 ` [PATCH] Re: Linux 2.6.27-rc5 Helge Deller
2008-08-30 20:21 ` Rafael J. Wysocki
2008-09-01 22:28 ` Al Viro
2008-08-31 23:27 ` J.A. Magallón
[not found] ` <328e43f00808311825r71164541pd4159a4a33b9b038@mail.gmail.com>
2008-09-01 7:12 ` Francois Romieu
-- strict thread matches above, loose matches on Subject: below --
2008-08-30 6:13 Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4dfdb8c0591f545ba749dd David Witbrodt
2008-08-30 6:21 ` Linus Torvalds
2008-08-30 6:58 David Witbrodt
2008-08-30 23:29 David Witbrodt
2008-08-31 0:16 ` Yinghai Lu
2008-08-31 1:25 David Witbrodt
2008-08-31 2:17 ` 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=alpine.LFD.1.10.0808292010260.5010@nehalem.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=dawitbro@sbcglobal.net \
--cc=htejun@gmail.com \
--cc=jeff@garzik.org \
--cc=kernel-testers@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox