Re: Question for Patch"libsas: fix "sysfs group not found" warnings at port teardown time"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/02/2016 21:33, Praveen Murali wrote:
Hi Yijing,
   The fix was deemed inappropriate and I think the explanation provided by James was kind similar to what your observation is. Also, as far as I remember the consensus was that these error messages (sysfs group not found) are harmless at this point. I think James can provide a better explanation and direction for you (copying him here).

Praveen


I can't find the original full discussion on this. My impression is that the fix is incorrect as the port should not be deleted in sas_destruct_devices(). I also tried this patch and got a NULL deference when I unplugged the disk from the expander.

We get the warn as the port is deleted before the device which is attached to it. The tricky part is that the port and devices are deleted in seperate work structs being processed in same work queue (shost wq). The first cannot be relinquished to allow the second to run.

One (undesirable) solution is to call sas_destruct_devices() directly from sas_unregister_dev().

On Feb 5, 2016, at 1:20 AM, wangyijing <wangyijing@xxxxxxxxxx> wrote:

Hi Dan and Praveen,
   I found a patch titled "libsas: fix "sysfs group not found" warnings at port teardown time" by google,
https://www.mail-archive.com/linux-scsi@xxxxxxxxxxxxxxx/msg39187.html

I found the same warning calltrace in my platform, but I didn't find the patch changes in the latest kernel 4.5-rc2.
So is this issue still in kernel ?

I think your patch could fix this issue we found, but I'm worried about another problem.

Now when unplug a disk

LLDD report a event loss_of_singal
    sas_deform_port
	sas_unregister_domain_devices
		sas_unregister_dev
			sas_discover_event(dev->port, DISCE_DESTRUCT);
	sas_port_delete
	phy->port = NULL;

and after your patch changes

LLDD report a event loss_of_singal
	sas_deform_port
		sas_unregister_domain_devices
			sas_unregister_dev
				sas_discover_event(dev->port, DISCE_DESTRUCT);
	phy->port = NULL;

...
	sas_destruct_devices
		sas_port_delete   //now we actually delete the port device, but we set 	phy->port = NULL;  before this time.


So if we hotplug the disk quickly, plug,unplug,plug,
The new dmaed event(plug) would try to alloc and add a new port, but the old port device is still alive.
Another calltrace would occur

WARNING: CPU: 0 PID: 1038 at lib/kobject.c:240 kobject_add_internal+0x258/0x318()
kobject_add_internal failed for port-0:0 with -EEXIST, don't try to register things with the same name in the same directory.
CPU: 0 PID: 1038 Comm: kworker/u64:2 Tainted: G        W       4.1.6+ #140
[<ffff800000089918>] dump_backtrace+0x0/0x124
[<ffff800000089a4c>] show_stack+0x10/0x1c
[<ffff80000009fcbc>] warn_slowpath_fmt+0x4c/0x58
[<ffff8000003cdc04>] device_add+0x28c/0x5b8
[<ffff80000040d4ec>] sas_port_add+0x20/0xbc
[<ffff80000040f3e8>] sas_porte_bytes_dmaed
[<ffff8000000b5504>] process_one_work+0x13c/0x344

Because I am not a sas guy, so if you could comment this or post new patch, I would be thanks a lot!

Thanks!
Yijing.



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

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



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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux