Date: Wed, 07 Dec 2011 09:41:30 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Attilio Rao <attilio@FreeBSD.org> Cc: Kostik Belousov <kostikbel@gmail.com>, arch@FreeBSD.org, current@FreeBSD.org Subject: Re: Stop scheduler on panic Message-ID: <4EDF18AA.2070509@FreeBSD.org> In-Reply-To: <CAJ-FndA0f5v%2B7Y_HreqUXwxRwWyEqie1ip2c6==VKME4Bp1u5A@mail.gmail.com> References: <20111113083215.GV50300@deviant.kiev.zoral.com.ua> <CAJ-FndCz0wrFojK4_FOrcoQWk6Wd%2Btq%2Br%2BT9PXT%2BLn%2B7hvKB8A@mail.gmail.com> <4EDE8931.1080506@FreeBSD.org> <CAJ-FndA0f5v%2B7Y_HreqUXwxRwWyEqie1ip2c6==VKME4Bp1u5A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
on 07/12/2011 00:11 Attilio Rao said the following: > I'd just change this check on panicstr: > @@ -606,9 +603,13 @@ kdb_trap(int type, int code, struct trapframe *tf) > intr = intr_disable(); > > #ifdef SMP > - other_cpus = all_cpus; > - CPU_CLR(PCPU_GET(cpuid), &other_cpus); > - stop_cpus_hard(other_cpus); > + if (panicstr == NULL) { > + other_cpus = all_cpus; > + CPU_CLR(PCPU_GET(cpuid), &other_cpus); > + stop_cpus_hard(other_cpus); > + did_stop_cpus = 1; > + } else > + did_stop_cpus = 0; > > to be SCHEDULER_STOPPED(). Makes sense. I will do this. > If you agree I can fix the kern_mutex, kern_sx and kern_rwlock parts > and it should be done. Since I am not very familiar with the details of that code, I can not be against such a proposal :-) What Kostik did seemed quite reasonable to me, but if that can be further improved, then I am all for it. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EDF18AA.2070509>