linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: zhangfei <zhangfei.gao@linaro.org>
To: John Garry <john.garry@huawei.com>,
	jejb@linux.vnet.ibm.com, martin.petersen@oracle.com
Cc: linuxarm@huawei.com, xuwei5@hisilicon.com,
	john.garry2@mail.dcu.ie, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] hisi_sas: fix the inconsistent lock issue reported by CONFIG_PROVE_LOCKING
Date: Mon, 06 Jun 2016 13:23:35 +0800	[thread overview]
Message-ID: <575508D7.2060508@linaro.org> (raw)
In-Reply-To: <1464698331-228732-3-git-send-email-john.garry@huawei.com>



On 05/31/2016 08:38 PM, John Garry wrote:
> It is not necessary to surround call to
> notify_port_event(, PORTE_BROADCAST_RCVD) by spin_lock_irqsave(),
> so remove.
> This was causing a warn, as below:
>
>      =================================
>      [ INFO: inconsistent lock state ]
>      4.4.8+ #12 Not tainted
>      ---------------------------------
>      inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
>      kworker/u64:1/168 [HC0[0]:SC0[0]:HE1:SE1] takes:
>       (&(&hisi_hba->lock)->rlock){?.....}, at: [<ffffffc00052c708>] alloc_dev_quirk_v2_hw+0x48/0xec
>      {IN-HARDIRQ-W} state was registered at:
>        [<ffffffc0000fc764>] mark_lock+0x19c/0x6a0
>        [<ffffffc0000fdc14>] __lock_acquire+0xa2c/0x1d00
>        [<ffffffc0000ff654>] lock_acquire+0x58/0x7c
>        [<ffffffc0008b609c>] _raw_spin_lock_irqsave+0x54/0x6c
>        [<ffffffc00052d3c0>] int_chnl_int_v2_hw+0x1c4/0x248
>        [<ffffffc0001098e8>] handle_irq_event_percpu+0x9c/0x144
>        [<ffffffc0001099d4>] handle_irq_event+0x44/0x74
>        [<ffffffc00010cd68>] handle_fasteoi_irq+0xb4/0x188
>        [<ffffffc000108ea8>] generic_handle_irq+0x24/0x38
>        [<ffffffc0001091fc>] __handle_domain_irq+0x60/0xac
>        [<ffffffc00008261c>] gic_handle_irq+0xcc/0x168
>        [<ffffffc0000855ac>] el1_irq+0x6c/0xe0
>        [<ffffffc0000f7414>] default_idle_call+0x1c/0x34
>        [<ffffffc0000f7654>] cpu_startup_entry+0x1d4/0x228
>        [<ffffffc0008aecd8>] rest_init+0x150/0x160
>        [<ffffffc000c4b95c>] start_kernel+0x3a4/0x3b8
>        [<00000000008bb000>] 0x8bb000
>      irq event stamp: 32661
>      hardirqs last  enabled at (32661): [<ffffffc0008b41a8>] __mutex_unlock_slowpath+0x108/0x18c
>      hardirqs last disabled at (32660): [<ffffffc0008b40e4>] __mutex_unlock_slowpath+0x44/0x18c
>      softirqs last  enabled at (25114): [<ffffffc0000bde68>] __do_softirq+0x210/0x27c
>      softirqs last disabled at (25095): [<ffffffc0000be224>] irq_exit+0x9c/0xe8
>
>      other info that might help us debug this:
>       Possible unsafe locking scenario:
>
>             CPU0
>             ----
>        lock(&(&hisi_hba->lock)->rlock);
>        <Interrupt>
>          lock(&(&hisi_hba->lock)->rlock);
>
>       *** DEADLOCK ***
>
>      2 locks held by kworker/u64:1/168:
>       #0:  ("%s"shost->work_q_name){++++.+}, at: [<ffffffc0000d2980>] process_one_work+0x134/0x3cc
>       #1:  ((&sw->work)#2){+.+.+.}, at: [<ffffffc0000d2980>] process_one_work+0x134/0x3cc
>
>      stack backtrace:
>      CPU: 4 PID: 168 Comm: kworker/u64:1 Not tainted 4.4.8+ #12
>      Hardware name: Huawei Technologies Co., Ltd. D03/D03, BIOS 1.12 01/01/1900
>      Workqueue: scsi_wq_1 sas_discover_domain
>      Call trace:
>      [<ffffffc000089988>] dump_backtrace+0x0/0x114
>      [<ffffffc000089ab0>] show_stack+0x14/0x1c
>      [<ffffffc00035ac50>] dump_stack+0xb4/0xf0
>      [<ffffffc0000fc524>] print_usage_bug+0x210/0x2b4
>      [<ffffffc0000fcbc4>] mark_lock+0x5fc/0x6a0
>      [<ffffffc0000fd9e8>] __lock_acquire+0x800/0x1d00
>      [<ffffffc0000ff654>] lock_acquire+0x58/0x7c
>      [<ffffffc0008b5edc>] _raw_spin_lock+0x44/0x58
>      [<ffffffc00052c708>] alloc_dev_quirk_v2_hw+0x48/0xec
>      [<ffffffc000528214>] hisi_sas_dev_found+0x48/0x1b8
>      [<ffffffc00051a9b8>] sas_notify_lldd_dev_found+0x34/0xe0
>      [<ffffffc00051e5e8>] sas_discover_root_expander+0x58/0x128
>      [<ffffffc00051b38c>] sas_discover_domain+0x4bc/0x564
>      [<ffffffc0000d29ec>] process_one_work+0x1a0/0x3cc
>      [<ffffffc0000d2d50>] worker_thread+0x138/0x438
>      [<ffffffc0000d9494>] kthread+0xdc/0xf0
>      [<ffffffc000085c50>] ret_from_fork+0x10/0x40
>
> Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
> Signed-off-by: John Garry <john.garry@huawei.com>

Reviewed-by: Zhangfei Gao <zhangfei.gao@linaro.org>

  reply	other threads:[~2016-06-06  5:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-31 12:38 [PATCH 0/3] hisi_sas: v2 hw ACPI support and fix lock John Garry
2016-05-31 12:38 ` [PATCH 1/3] hisi_sas: add v2 hw ACPI support John Garry
2016-06-06  5:24   ` zhangfei
2016-05-31 12:38 ` [PATCH 2/3] hisi_sas: fix the inconsistent lock issue reported by CONFIG_PROVE_LOCKING John Garry
2016-06-06  5:23   ` zhangfei [this message]
2016-05-31 12:38 ` [PATCH 3/3] hisi_sas: update driver version to 1.5 John Garry
2016-06-07  3:16 ` [PATCH 0/3] hisi_sas: v2 hw ACPI support and fix lock Martin K. Petersen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=575508D7.2060508@linaro.org \
    --to=zhangfei.gao@linaro.org \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=john.garry2@mail.dcu.ie \
    --cc=john.garry@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=martin.petersen@oracle.com \
    --cc=xuwei5@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).