Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Mar 2010 00:32:37 +0100
From:      Attilio Rao <attilio@freebsd.org>
To:        Matthew Jacob <mj@feral.com>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: How is supposed to be protected the units list?
Message-ID:  <3bbf2fe11003031532u2207eb55h19c3a045215a7d84@mail.gmail.com>
In-Reply-To: <4B8EF128.8050704@feral.com>
References:  <3bbf2fe11002281655i61a5f0a0if3f381ad0c4a1ef8@mail.gmail.com> <3bbf2fe11003020724m14bebf74y9fa3906418b7cf11@mail.gmail.com> <4B8D3016.2070301@feral.com> <3bbf2fe11003031334g4591c1a3lc52dfb898f728ee2@mail.gmail.com> <20100303214424.GA53790@sandvine.com> <3bbf2fe11003031348q4c1fcccfxd19da32875b43f56@mail.gmail.com> <4B8EDAE8.3080401@feral.com> <3bbf2fe11003031357o518d6028m8157d9110a9122f3@mail.gmail.com> <4B8EF128.8050704@feral.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2010/3/4 Matthew Jacob <mj@feral.com>:
> On 3/3/2010 1:57 PM, Attilio Rao wrote:
>>
>> 2010/3/3 Matthew Jacob<mj@feral.com>:
>>
>>>
>>> On static review, the only code that makes me nervous are
>>> ata_shutdown/da_shutdown.
>>> Those are the only places where you hold that lock across an uncertain
>>> interval.
>>>
>>
>> Please note that a def mutex is already held (the cam_periph_lock),
>> so, unless LORs I'm not thinking about, I don't expect too much
>> surprises for that codepath.
>>
>> Thanks,
>> Attilio
>>
>>
>>
>
> The only potential operational difference was on reattach (power SAN disk=
s
> on, they attach. Power them off. Wait for 60 seconds. The deattach. Power
> them on again). I've run this test many times before and haven't seen thi=
s.
>
> da7: 34732MB (71132959 512 byte sectors: 255H 63S/T 4427C)
> (da7:isp0:0:6:0): removing device entry
> panic: Bad link elm 0xffffff0018fbbc00 next->prev !=3D elm
> cpuid =3D 0
> KDB: enter: panic
> [ thread pid 0 tid 100044 ]
> Stopped at =C2=A0 =C2=A0 =C2=A0kdb_enter+0x3d: movq =C2=A0 =C2=A0$0,0x6b0=
2d0(%rip)
> db> bt
> Tracing pid 0 tid 100044 td 0xffffff0002fbe000
> kdb_enter() at kdb_enter+0x3d
> panic() at panic+0x17b
> camperiphfree() at camperiphfree+0x1c2
> cam_periph_release_locked() at cam_periph_release_locked+0x48
> cam_periph_release() at cam_periph_release+0x53
> dasysctlinit() at dasysctlinit+0x153
> taskqueue_run() at taskqueue_run+0x91
> taskqueue_thread_loop() at taskqueue_thread_loop+0x3f
> fork_exit() at fork_exit+0x12a
> fork_trampoline() at fork_trampoline+0xe
> --- trap 0, rip =3D 0, rsp =3D 0xffffff8000188d30, rbp =3D 0 ---

Is this with the patch or without?

Thanks,
Attilio


--=20
Peace can only be achieved by understanding - A. Einstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3bbf2fe11003031532u2207eb55h19c3a045215a7d84>