Pack of CAM improvements

Henri Hennebert hlh at restart.be
Wed Jan 20 13:34:16 UTC 2010


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
> 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.

Thanks

Henri

> - 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.
>



More information about the freebsd-stable mailing list