18 Jul, 2008
3 commits
-
Adrian Bunk reported that enabling 4MB page size breaks the build.
The problem is that MAX_ORDER combined with the page shift exceeds the
SECTION_SIZE_BITS we use in asm-sparc64/sparsemem.hThere are several ways I suppose we could work around this. For one
we could define a CONFIG_FORCE_MAX_ZONEORDER to decrease MAX_ORDER in
these higher page size cases.But I also know that these page size cases are broken wrt. TLB miss
handling especially on pre-hypervisor systems, and there isn't an easy
way to fix that.These options were meant to be fun experimental hacks anyways, and
only 8K and 64K make any sense to support.So remove 512K and 4M base page size support. Of course, we still
support these page sizes for huge pages.Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
26 Jun, 2008
1 commit
-
It's not even passed on to smp_call_function() anymore, since that
was removed. So kill it.Acked-by: Jeremy Fitzhardinge
Reviewed-by: Paul E. McKenney
Signed-off-by: Jens Axboe
20 May, 2008
2 commits
-
When a cpu really is stuck in the kernel, it can be often
impossible to figure out which cpu is stuck where. The
worst case is when the stuck cpu has interrupts disabled.Therefore, implement a global cpu state capture that uses
SMP message interrupts which are not disabled by the
normal IRQ enable/disable APIs of the kernel.As long as we can get a sysrq 'y' to the kernel, we can
get a dump. Even if the console interrupt cpu is wedged,
we can trigger it from userspace using /proc/sysrq-triggerThe output is made compact so that this facility is more
useful on high cpu count systems, which is where this
facility will likely find itself the most useful :)Signed-off-by: David S. Miller
-
This patch removes the CVS keywords that weren't updated for a long time
from comments.Signed-off-by: Adrian Bunk
Signed-off-by: David S. Miller
17 May, 2008
1 commit
-
This fixes the missing ram regression reported by
Mikael Pettersson , much thanks for
all of this help in diagnosing this.The second argument to lmb_reserve() is a size,
not an end address bounds.Tested-by: Mikael Pettersson
Signed-off-by: David S. Miller
12 May, 2008
1 commit
-
Read all of the OF memory and translation tables, then read
the physical available memory list twice.When making these requests, OF can allocate more memory to
do it's job, which can remove pages from the available
memory list.So fetch in all of the tables at once, and fetch the available
list last to make sure we read a stable value.Signed-off-by: David S. Miller
07 May, 2008
1 commit
-
We die because we forget to convert initrd_start and
initrd_end to virtual addresses.Reported by Mikael Pettersson
Signed-off-by: David S. Miller
06 May, 2008
1 commit
-
The identical online_page() implementations from all architectures got
moved to mm/memory_hotplug.c - except for the sparc64 one that even was
dead code due to MEMORY_HOTPLUG not being available there.Signed-off-by: Adrian Bunk
Signed-off-by: David S. Miller
30 Apr, 2008
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: remove duplicated include
sparc: Add kgdb support.
kgdbts: Sparc needs sstep emulation.
sparc32: Kill smp_message_pass() and related code.
sparc64: Kill PIL_RESERVED, unused.
sparc64: Split entry.S up into seperate files.
29 Apr, 2008
2 commits
-
Current limitations:
1) On SMP single stepping has some fundamental issues,
shared with other sw single-step architectures such
as mips and arm.2) On 32-bit sparc we don't support SMP kgdb yet. That
requires some reworking of the IPI mechanisms and
infrastructure on that platform.Signed-off-by: David S. Miller
-
ext4 uses ZERO_PAGE(0) to zero out blocks. We need to export
different symbols in different arches for the usage of ZERO_PAGE
in modules.Signed-off-by: Aneesh Kumar K.V
Acked-by: David S. Miller
Signed-off-by: "Theodore Ts'o"
28 Apr, 2008
1 commit
-
NR_PAGEFLAGS specifies the number of page flags we are using. From that we
can calculate the number of bits leftover that can be used for zone, node (and
maybe the sections id). There is no need anymore for FLAGS_RESERVED if we use
NR_PAGEFLAGS.Use the new methods to make NR_PAGEFLAGS available via the preprocessor.
NR_PAGEFLAGS is used to calculate field boundaries in the page flags fields.
These field widths have to be available to the preprocessor.Signed-off-by: Christoph Lameter
Cc: David Miller
Cc: Andy Whitcroft
Cc: KAMEZAWA Hiroyuki
Cc: KOSAKI Motohiro
Cc: Rik van Riel
Cc: Mel Gorman
Cc: Jeremy Fitzhardinge
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
24 Apr, 2008
10 commits
-
Now that we indicate the "restart system call" in the
trap type field of pt_regs->magic, we don't need to
set the %l6 boolean in all of the trap return paths.And we therefore don't need to pass it to do_notify_resume().
Signed-off-by: David S. Miller
-
Currently there is only code to parse NUMA attributes on
sun4v/niagara systems, but later on we will add such parsing
for older systems.Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
We have to do it like this before we can move the PROM and MDESC device
tree code over to using lmb_alloc().Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
This allows us to kill the incredibly complicated and stupid function
trim_pavail().Signed-off-by: David S. Miller
-
Call lmb_add() on available regions, and call lmb_reserve()
on the main kernel image and the ramdisk (if any).Signed-off-by: David S. Miller
-
And add some comments explaining all of the quirks involved in
the way the bootloader provides this information.Signed-off-by: David S. Miller
29 Mar, 2008
1 commit
-
Noticed by Andrew Morton.
Signed-off-by: David S. Miller
26 Mar, 2008
3 commits
-
Reported by Mariusz Kozlowski.
Signed-off-by: David S. Miller
-
Add 'UL' markers to DCU_* macros.
Declare C functions called from assembler in entry.h
Declare C functions called from within the sparc64 arch
code in include/asm-sparc64/*.h headers as appropriate.Remove unused routines in traps.c
Signed-off-by: David S. Miller
-
We create a local header file entry.h, under arch/sparc64/kernel/,
that we can use to declare routines either defined in assembler
or only invoked from assembler. As well as other data objects
which are private to the inner sparc64 kernel arch code.Signed-off-by: David S. Miller
22 Mar, 2008
1 commit
-
Currently kernel images are limited to 8MB in size, and this causes
problems especially when enabling features that take up a lot of
kernel image space such as lockdep.The code now will align the kernel image size up to 4MB and map that
many locked TLB entries. So, the only practical limitation is the
number of available locked TLB entries which is 16 on Cheetah and 64
on pre-Cheetah sparc64 cpus. Niagara cpus don't actually have hw
locked TLB entry support. Rather, the hypervisor transparently
provides support for "locked" TLB entries since it runs with physical
addressing and does the initial TLB miss processing.Fully utilizing this change requires some help from SILO, a patch for
which will be submitted to the maintainer. Essentially, SILO will
only currently map up to 8MB for the kernel image and that needs to be
increased.Note that neither this patch nor the SILO bits will help with network
booting. The openfirmware code will only map up to a certain amount
of kernel image during a network boot and there isn't much we can to
about that other than to implemented a layered network booting
facility. Solaris has this, and calls it "wanboot" and we may
implement something similar at some point.Signed-off-by: David S. Miller
29 Feb, 2008
1 commit
-
Because of the new futex validation init handler, we have
to accept faults in init section text as well as the normal
kernel text.Thanks to Tom Callaway for the bug report.
Signed-off-by: David S. Miller
27 Feb, 2008
1 commit
-
Some parts of the kernel now do things like do *_user() accesses while
set_fs(KERNEL_DS) that fault on purpose.See, for example, the code added by changeset
a0c1e9073ef7428a14309cba010633a6cd6719ea ("futex: runtime enable pi
and robust functionality").That trips up the ASI sanity checking we make in do_kernel_fault().
Just remove it for now. Maybe we can add it back later with an added
conditional which looks at the current get_fs() value.Signed-off-by: David S. Miller
25 Feb, 2008
1 commit
-
Fix following warnings:
WARNING: vmlinux.o(.text+0x4f980): Section mismatch in reference from the function kernel_map_range() to the function .init.text:__alloc_bootmem()
WARNING: vmlinux.o(.text+0x4f9cc): Section mismatch in reference from the function kernel_map_range() to the function .init.text:__alloc_bootmem()alloc_bootmem() is only used during early init and for any subsequent
call to kernel_map_range() the program logic avoid the call.
So annotate kernel_map_range() with __ref to tell modpost to
ignore the reference to a __init function.Signed-off-by: Sam Ravnborg
Signed-off-by: David S. Miller
18 Feb, 2008
1 commit
-
Signed-off-by: David S. Miller
13 Feb, 2008
1 commit
-
We'll replace it in the future with better logging facilities that can
be enabled at run time.Signed-off-by: David S. Miller
08 Feb, 2008
1 commit
-
This patchset adds a flags variable to reserve_bootmem() and uses the
BOOTMEM_EXCLUSIVE flag in crashkernel reservation code to detect collisions
between crashkernel area and already used memory.This patch:
Change the reserve_bootmem() function to accept a new flag BOOTMEM_EXCLUSIVE.
If that flag is set, the function returns with -EBUSY if the memory already
has been reserved in the past. This is to avoid conflicts.Because that code runs before SMP initialisation, there's no race condition
inside reserve_bootmem_core().[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: fix powerpc build]
Signed-off-by: Bernhard Walle
Cc:
Cc: "Eric W. Biederman"
Cc: Vivek Goyal
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
31 Jan, 2008
1 commit
-
Sparc64 has a way of providing the base address for the per cpu area of the
currently executing processor in a global register.Sparc64 also provides a way to calculate the address of a per cpu area
from a base address instead of performing an array lookup.Cc: David Miller
Signed-off-by: Mike Travis
Signed-off-by: Ingo Molnar
13 Dec, 2007
1 commit
-
This was caught and identified by Greg Onufer.
Since we setup the 256M/4M bitmap table after taking over the trap
table, it's possible for some 4M mapping to get loaded in the TLB
beforhand which later will be 256M mappings.This can cause illegal TLB multiple-match conditions. Fix this by
setting up the bitmap before we take over the trap table.Next, __flush_tlb_all() was not doing anything on hypervisor
platforms. Fix by adding sun4v_mmu_demap_all() and calling it.Signed-off-by: David S. Miller
01 Nov, 2007
2 commits
-
When CONFIG_BUG is turned off, the standard trick of:
switch (x) {
case X:
...
case Y:
...
default:
BUG();
};to mark impossible cases does not work because BUG() evalutes
to nothing and thus GCC just sees a fallthrough code path.Add an explicit KERN_ERR log message and a do_exit() to trap
this case.Signed-off-by: David S. Miller
-
It is unused since we went to an I-cache flush that solely used
the 'flush' instruction, and it's presence breaks the build
when PAGE_SIZE is 512KB.Signed-off-by: David S. Miller
27 Oct, 2007
1 commit
-
Signed-off-by: David S. Miller