suspend/resume + Re: dynamic attach of hinted devices
ray at ddteam.net
Mon Mar 5 19:31:34 UTC 2012
Changing subject because now it will affect suspend/resume thread.
On Fri, 10 Feb 2012 09:45:48 -0700
Warner Losh <imp at bsdimp.com> wrote:
> On Feb 10, 2012, at 4:02 AM, Brooks Davis wrote:
> > On Tue, Jan 31, 2012 at 09:38:57PM +0200, Aleksandr Rybalko wrote:
> >> Hi FreeBSD hackers,
> >> at first I want to say this: :)
> >> WARNING: FOLLOWING DEVCTL PATCH MAY EASILY PANIC YOUR SYSTEM,
> >> PLEASE DO NOT TRY IT ON PRODUCTION SERVERS AND TRY IT WITH
> >> FILESYSTEMS MOUNTED AS READONLY :)))))
> >> So I introduce two patches first one  used to migrate from
> >> static_hints or hints in the static_kenv to dynamic hints.
> >> sysctl kern.hintmode=2 will copy hints from static hints or from
> >> static kenv and put it into dynamic kenv. Those will allow to
> >> manipulate hints values and attach hinted devices with devctl tool.
> >> Second  allow attach/detach devices with userland tool devctl.
> >> devctl tool allow add and initialize new devices which is not able
> >> to be autoenumerating, such a hinted devices.
> >> Both designed to have ability update EEPROM items in runtime, since
> >> some device can't work in mode when it accessible like a EEPROM
> >> chip.
> >> Example:
> >> # sysctl kern.hintmode=2
> >> # kenv hint.mx25l.0.at="spibus0"
> >> # kenv hint.mx25l.0.cs=0
> >> # kenv hint.mx25l.0.chipname="at25128"
> >> # devctl hinted spibus 0 mx25l 0
> >> mx25l0: <M25Pxx Flash Family> at cs 0 mode 0 on spibus0
> >> mx25l0: at25128, sector 64 bytes, 256 sectors
> >> GEOM: new disk flash/spi0
> >> Someone may found it also useful for testing device attach/detach
> >> code (memory leaks, resource allocation, etc).
> >> So, say me please your opinion.
> > I skimmed over the patch and the concept looks good to me. I'm
> > probably not the right person to review this proposal in detail,
> > but perhaps John Baldwin (cc'd) could do it or suggest someone.
> I've looked at it and it looks OK, but I had lots of feedback I
> didn't have time to write up. I like the concept, but have lots of
> suggestions for improvement since I'd like to see this more
> generically done.
Think this version will cover another few items from your suggestion
list, Warner. :)
Now devctl able to do also DEVICE_SHUTDOWN, DEVICE_SUSPEND and
DEVICE_RESUME, so folks who want to test suspend/resume ability can do
it easy, but of course without real device power-off.
Another one thing to dial is a name of device. now it is /dev/devctl2,
just because /dev/devctl used by devd (which not control, but just
listen for device events). So we can use:
1. synonym like /dev/devmng, or
2. teach devd to do ioctl over /dev/devctl
Second have another list of problems. devd is a single tool wrote in C++
used for embedded firmwares, so I replace it with simplified analogue
(cdevd) to not hold c++ libs. and then, of course, much more works and
Hope many hackers say me own opinion :)
P.S. patch is not subject to commit, but only for peoples who want to
test it. When I will prepare it to commit, I will do it in 3 parts:
2. kern/subr_bus + sys/bus.h + conf/options
Aleksandr Rybalko <ray at ddteam.net>
More information about the freebsd-arch