Re: [Help Test] kdump, x86, acpi: Reproduce CPU0 SMI corruption issueafter unsetting BSP flag

From: HATAYAMA Daisuke
Date: Mon Aug 19 2013 - 23:14:19 EST


(2013/08/19 22:46), Petr Tesarik wrote:
On Sun, 18 Aug 2013 19:59:53 -0700
"Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> wrote:





Sorry Eric, I'm not clear to what you mean by ``short one core''...
Which are you suggesting? Disabling BSP if crash happens on AP is
reasonable?
Or restricting cpus to a single one only just as the current kdump
configuration is reasonable?

I am suggesting we start every cpu except the BSP from the AP we started on.

N-1 cpus seems like a good tradeoff between performance and reliability for those who need it.

FWIW a large customers of ours is fine with such a limitation. And I
have already tested this approach manually (starting the kdump kernel
with maxcpus=1 and hot-plugging the remaining APs from user-space).


This is a workaround I suggested previously on this mailing list?
The additional merits of disabling BSP in kernel-side on the 2nd kernel is:

- We can assign memory for BSP to another CPU that is available. It's more
efficient in memory consumption. It's the same reason why distro uses nr_cpus=1
instead of maxcpus=1. If we don't disable BSP, we allocate some amount of memory
for BSP in kernel-space although we never use it. 2nd kernel should have as small
amount of memory as possible.

- Remove BSP from hot-plugging target CPUes. Keeping BSP after crash happens on AP
means keeping a potential risk of triggering system hang from user-space.
Can remove awkward configuration to hot-add APs from user-space while avoiding BSP.
This seems less important than the above.

On practical configuraiton, it's necessary to decide how many cpus we should use
on the 2nd kernel for trade-off of performance and acceptable amount of memory
for additional CPUes. I think it would simply be the number of disks and the number
of threads of makedumpfile in most cases.

Now that this approach is in line with upstream efforts, I'm going to
test it on some more machines and see if there are any troubles.

@Hatayama-san:
BTW, I have question that does normal kdump work well if crash happens
on some AP? I wonder the same issue could happen on the 2nd kernel.

I'm not sure what you mean. Normal kdump starts with "maxcpus=1", and
yes, that works even if the secondary kernel is booted from an AP. OTOH
I suspect that not having any BSP in the system may be the cause of some
mysterious random reboots and/or hangs experienced by some customers.

I'll try setting the BSP flag on the boot CPU unconditionally and see
if it makes any difference.

Petr Tesarik


Ma saw a hang when he tried to reboot his HP systems on the 1st kernel
under the condition that BSP flag was unset on any existing CPUs. I
thought the condition is similar to the 2nd kernel after crash happens
on AP in the sense that there is no BSP in online CPUs. If the hang he saw
was caused by running reboot on the CPU without BSP flag, I guess the same
situation could already happen on only-1-cpu configuration now.

--
Thanks.
HATAYAMA, Daisuke

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/