Re: AIC94XX discovery timeout problem details...

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

 



I am planning to process port/phy events in two phases. Phase-I sets up
asd_sas_port, asd_sas_phy lists and calls the LLDD with a correct
phy_mask. Phase-II is done in the thread context by queuing to the scsi
work queue that involves setting up sysfs objects.  Still there would be
just one thread setting up/tearing down sysfs objects that should avoid
any races.

Would appreciate any suggestions or issues with this approach.

Thanks, Malahal.

Luben Tuikov [ltuikov@xxxxxxxxx] wrote:
> --- malahal@xxxxxxxxxx wrote:
> > I chased the time out problem and found that the PORTE_BYTES_DMAED port
> > event must be responded with a call to lldd_port_formed() which will
> > update PHY_IS_UP and port-links fields in DDB 0. As there is a single
> > thread handling PHY/port events as well as discovery, we really can't
> > handle PORTE_BYTES_DMAED event until the discovery is complete. This
> > results in SCSI commands timing out in the discovery thread no matter
> > what I do!  This problem may be unique to Vitesse expander, read the PS
> > section for details.
> > 
> > Tried using two threads, one for events and the other for discovery.
> 
> Malahal,
> 
> If you go back in the archives, and take a look at the SAS Stack
> as I submitted it last year, you'll notice that this is exactly how
> the code is: there is a separate event thread and a separate
> discovery thread.
> 
> That is, from inception, my code has always had two separate threads,
> one for events and one for discovery.
> 
> I wasn't aware that the code had been changed such that a single
> thread handles events and discovery.  This is a very naive approach,
> and a regression over the original code.
> 
> > That avoided the timeout problems, but the discovery thread would die
> > after few iterations due to the event thread and the discovery thread
> > racing each other for setting up and tearing down of sysfs objects.
> 
> Indeed, the situation presented in such circumstances is tricky.
> These "races" have been dealt with in my (original) code.  Currently,
> I don't experience any problems with my SAS Stack, as I maintain it.
> 
> If any of my original comments are still left in the code or the README
> files, that would give you a hint of how such "races" are handled.
> 
> > I tried calling lldd_port_formed() with appropriate phy_mask from the
> > notify_port_event() itself. That worked fine. It is just a hack for now!
-
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