Pack of CAM improvements

Boris Samorodov bsam at ipt.ru
Thu Jan 21 19:26:46 UTC 2010


On Wed, 20 Jan 2010 14:34:07 +0100 Henri Hennebert wrote:
> On 01/19/2010 17:12, Alexander Motin wrote:
> > Hi.
> >
> > I've made a patch, that should solve set of problems of CAM ATA and CAM

Thanks!

> > generally. I would like to ask for testing and feedback.
> >
> > What patch does:
> > - It unifies bus reset/probe sequence. Whenever bus attached at boot or
> > later, CAM will automatically reset and scan it. It allows to remove
> > duplicate code from many drivers.
> > - Any bus, attached before CAM completed it's boot-time initialization,
> > will equally join to the process, delaying boot if needed.
> > - New kern.cam.boot_delay loader tunable should help controllers that
> > are still unable to register their buses in time (such as slow USB/
> > PCCard/ CardBus devices).

> With kern.cam.boot_delay=15000 (I suppose that it was in ms) I can now
> boot from my sim card reader.

So do I with kern.cam.boot_delay=6000 for my EEEPC-1000:
-----
% uname -a
FreeBSD izar 9.0-CURRENT FreeBSD 9.0-CURRENT #3 r202734M: Thu Jan 21 18:13:10 MSK 2010     bsam at izar:/obj/usr/src/sys/EEEBB  i386
-----

> > - To allow synchronization between different CAM levels, concept of
> > requests priorities was extended. Priorities now split between several
> > "run levels". Device can be freezed at specified level, allowing higher
> > priority requests to pass. For example, no payload requests allowed,
> > until PMP driver enable port. ATA XPT negotiate transfer parameters,
> > periph driver configure caching and so on.
> > - Frozen requests are no more counted by request allocation scheduler.
> > It fixes deadlocks, when frozen low priority payload requests occupying
> > slots, required by higher levels to manage theit execution.
> > - Two last changes were holding proper ATA reinitialization and error
> > recovery implementation. Now it is done: SATA controllers and Port
> > Multipliers now implement automatic hot-plug and should correctly
> > recover from timeouts and bus resets.
> >
> > Patch can be found here:
> > http://people.freebsd.org/~mav/cam-ata.20100119.patch
> >
> > Feedback as always welcome.

-- 
WBR, Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD Committer, http://www.FreeBSD.org The Power To Serve


More information about the freebsd-current mailing list