From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Christie Subject: Re: [PATCH 02/28] be2iscsi: Replace _bh with _irqsave/irqrestore Date: Fri, 5 Aug 2016 13:38:44 -0500 Message-ID: <57A4DD34.4080000@redhat.com> References: <1469092085-14311-1-git-send-email-jitendra.bhivare@broadcom.com> <1469092085-14311-3-git-send-email-jitendra.bhivare@broadcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.redhat.com ([209.132.183.28]:52706 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937329AbcHESiq (ORCPT ); Fri, 5 Aug 2016 14:38:46 -0400 In-Reply-To: <1469092085-14311-3-git-send-email-jitendra.bhivare@broadcom.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Jitendra Bhivare , linux-scsi@vger.kernel.org On 07/21/2016 04:07 AM, Jitendra Bhivare wrote: > Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 21 > Pid: 13242, comm: flush-8:80 Tainted: G W -- ------------ > 2.6.32-573.el6.x86_64 #1 > Call Trace: > [] ? panic+0xa7/0x16f > [] ? sched_clock+0x9/0x10 > [] ? watchdog_overflow_callback+0xcd/0xd0 > [] ? __perf_event_overflow+0xa7/0x240 > [] ? x86_perf_event_set_period+0xf4/0x180 > [] ? perf_event_overflow+0x14/0x20 > [] ? intel_pmu_handle_irq+0x202/0x3f0 > [] ? perf_event_nmi_handler+0x39/0xb0 > [] ? notifier_call_chain+0x55/0x80 > [] ? scsi_done+0x0/0x60 > [] ? atomic_notifier_call_chain+0x1a/0x20 > [] ? notify_die+0x2e/0x30 > [] ? do_nmi+0x1c3/0x350 > [] ? nmi+0x20/0x30 > [] ? scsi_done+0x0/0x60 > [] ? scsi_done+0x0/0x60 > [] ? _spin_lock+0x1e/0x30 > <> [] ? iscsi_queuecommand+0x7f/0x4e0 [libiscsi] > [] ? scsi_dispatch_cmd+0xe5/0x310 > [] ? scsi_request_fn+0x5be/0x750 > [] ? del_timer+0x7d/0xe0 > [] ? __generic_unplug_device+0x32/0x40 > [] ? elv_insert+0xd3/0x190 > [] ? __elv_add_request+0x40/0x90 > > In beiscsi_alloc_pdu, _bh versions of spin_lock are being used for > protecting SGLs and WRBs. _bh versions are needed as the function gets > invoked in process context and BLOCK_IOPOLL softirq. > > In spin_unlock_bh, after releasing the lock and enabling BH, do_softirq > is called which executes till last SOFTIRQ. > > beiscsi_alloc_pdu is called under session lock. Through block layer, > iSCSI stack in some cases send IOs with interrupts disabled. In such paths, What path is this? Is this with mq enabled or disabled?