<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/crash.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-14T05:52:46Z</updated>
<entry>
<title>powerpc/kexec: make masking/disabling interrupts generic</title>
<updated>2010-10-14T05:52:46Z</updated>
<author>
<name>Matthew McClintock</name>
</author>
<published>2010-09-16T22:58:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c71635d288ffd3bcdfb30308f681f9af34f0fc81'/>
<id>urn:sha1:c71635d288ffd3bcdfb30308f681f9af34f0fc81</id>
<content type='text'>
Right now just the kexec crash pathway turns turns off the interrupts.
Pull that out and make a generic version for use elsewhere

Signed-off-by: Matthew McClintock &lt;msm@freescale.com&gt;
Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/kdump: Stop all other CPUs before running crash handlers</title>
<updated>2010-08-24T05:26:27Z</updated>
<author>
<name>Anton Blanchard</name>
</author>
<published>2010-08-02T20:39:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=249ec2287579d578ea72593dc3b30a00121c4075'/>
<id>urn:sha1:249ec2287579d578ea72593dc3b30a00121c4075</id>
<content type='text'>
During kdump we run the crash handlers first then stop all other CPUs.
We really want to stop all CPUs as close to the fail as possible and also
have a very controlled environment for running the crash handlers, so it
makes sense to reverse the order.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Acked-by: Matt Evans &lt;matt@ozlabs.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>lmb: rename to memblock</title>
<updated>2010-07-14T07:14:00Z</updated>
<author>
<name>Yinghai Lu</name>
</author>
<published>2010-07-12T04:36:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=95f72d1ed41a66f1c1c29c24d479de81a0bea36f'/>
<id>urn:sha1:95f72d1ed41a66f1c1c29c24d479de81a0bea36f</id>
<content type='text'>
via following scripts

      FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')

      sed -i \
        -e 's/lmb/memblock/g' \
        -e 's/LMB/MEMBLOCK/g' \
        $FILES

      for N in $(find . -name lmb.[ch]); do
        M=$(echo $N | sed 's/lmb/memblock/g')
        mv $N $M
      done

and remove some wrong change like lmbench and dlmb etc.

also move memblock.c from lib/ to mm/

Suggested-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Acked-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Fix default_machine_crash_shutdown #ifdef botch</title>
<updated>2010-07-08T08:11:45Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2010-06-15T14:48:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2be05481f6125254c45b78f334d4dd09c701c82'/>
<id>urn:sha1:c2be05481f6125254c45b78f334d4dd09c701c82</id>
<content type='text'>
crash_kexec_wait_realmode() is defined only if CONFIG_PPC_STD_MMU_64
and CONFIG_SMP, but is called if CONFIG_PPC_STD_MMU_64 even if !CONFIG_SMP.
Fix the conditional compilation around the invocation.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Acked-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/kexec: Add support for FSL-BookE</title>
<updated>2010-05-25T02:25:32Z</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
</author>
<published>2010-04-04T20:19:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3df895aebe091b1657a42a8c859bd49fc96646b'/>
<id>urn:sha1:b3df895aebe091b1657a42a8c859bd49fc96646b</id>
<content type='text'>
This adds support kexec on FSL-BookE where the MMU can not be simply
switched off. The code borrows the initial MMU-setup code to create the
identical mapping mapping. The only difference to the original boot code
is the size of the mapping(s) and the executeable address.
The kexec code maps the first 2 GiB of memory in 256 MiB steps. This
should work also on e500v1 boxes.
SMP support is still not available.

(Kumar: Added minor change to build to ifdef CONFIG_PPC_STD_MMU_64 some
code that was PPC64 specific)

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/kdump: Fix race in kdump shutdown</title>
<updated>2010-05-21T07:31:11Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2010-05-13T19:40:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60adec6226bbcf061d4c2d10944fced209d1847d'/>
<id>urn:sha1:60adec6226bbcf061d4c2d10944fced209d1847d</id>
<content type='text'>
When we are crashing, the crashing/primary CPU IPIs the secondaries to
turn off IRQs, go into real mode and wait in kexec_wait.  While this
is happening, the primary tears down all the MMU maps.  Unfortunately
the primary doesn't check to make sure the secondaries have entered
real mode before doing this.

On PHYP machines, the secondaries can take a long time shutting down
the IRQ controller as RTAS calls are need.  These RTAS calls need to
be serialised which resilts in the secondaries contending in
lock_rtas() and hence taking a long time to shut down.

We've hit this on large POWER7 machines, where some secondaries are
still waiting in lock_rtas(), when the primary tears down the HPTEs.

This patch makes sure all secondaries are in real mode before the
primary tears down the MMU.  It uses the new kexec_state entry in the
paca.  It times out if the secondaries don't reach real mode after
10sec.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/kdump: Use chip-&gt;shutdown to disable IRQs</title>
<updated>2010-05-21T07:31:10Z</updated>
<author>
<name>Anton Blanchard</name>
</author>
<published>2010-05-10T16:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d7a87217de48b234b3c8ff8a73059947d822e07'/>
<id>urn:sha1:5d7a87217de48b234b3c8ff8a73059947d822e07</id>
<content type='text'>
I saw this in a kdump kernel:

IOMMU table initialized, virtual merging enabled
Interrupt 155954 (real) is invalid, disabling it.
Interrupt 155953 (real) is invalid, disabling it.

ie we took some spurious interrupts. default_machine_crash_shutdown tries
to disable all interrupt sources but uses chip-&gt;disable which maps to
the default action of:

static void default_disable(unsigned int irq)
{
}

If we use chip-&gt;shutdown, then we actually mask the IRQ:

static void default_shutdown(unsigned int irq)
{
        struct irq_desc *desc = irq_to_desc(irq);

        desc-&gt;chip-&gt;mask(irq);
        desc-&gt;status |= IRQ_MASKED;
}

Not sure why we don't implement a -&gt;disable action for xics.c, or why
default_disable doesn't mask the interrupt.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/kdump: CPUs assume the context of the oopsing CPU</title>
<updated>2010-05-21T07:31:10Z</updated>
<author>
<name>Anton Blanchard</name>
</author>
<published>2010-05-10T16:25:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0644079410065567e3bb31fcb8e6441f2b7685a9'/>
<id>urn:sha1:0644079410065567e3bb31fcb8e6441f2b7685a9</id>
<content type='text'>
We wrap the crash_shutdown_handles[] calls with longjmp/setjmp, so if any
of them fault we can recover. The problem is we add a hook to the debugger
fault handler hook which calls longjmp unconditionally.

This first part of kdump is run before we marshall the other CPUs, so there
is a very good chance some CPU on the box is going to page fault. And when
it does it hits the longjmp code and assumes the context of the oopsing CPU.
The machine gets very confused when it has 10 CPUs all with the same stack,
all thinking they have the same CPU id. I get even more confused trying
to debug it.

The patch below adds crash_shutdown_cpu and uses it to specify which cpu is
in the protected region. Since it can only be -1 or the oopsing CPU, we don't
need to use memory barriers since it is only valid on the local CPU - no other
CPU will ever see a value that matches it's local CPU id.

Eventually we should switch the order and marshall all CPUs before doing the
crash_shutdown_handles[] calls, but that is a bigger fix.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/crashdump: Do not fail on NULL pointer dereferencing</title>
<updated>2010-05-21T07:31:09Z</updated>
<author>
<name>Maxim Uvarov</name>
</author>
<published>2010-05-11T05:41:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=426b6cb478e60352a463a0d1ec75c1c9fab30b13'/>
<id>urn:sha1:426b6cb478e60352a463a0d1ec75c1c9fab30b13</id>
<content type='text'>
Signed-off-by: Maxim Uvarov &lt;muvarov@gmail.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Remove get_irq_desc()</title>
<updated>2009-10-30T06:20:55Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2009-10-13T19:44:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6cff46f4bc6cc4a8a4154b0b6a2e669db08e8fd2'/>
<id>urn:sha1:6cff46f4bc6cc4a8a4154b0b6a2e669db08e8fd2</id>
<content type='text'>
get_irq_desc() is a powerpc-specific version of irq_to_desc(). That
is reason enough to remove it, but it also doesn't know about sparse
irq_desc support which irq_to_desc() does (when we enable it).

Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Acked-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
