I have an IOKit kernel extension installed in /S/L/E that defines
four classes,
one that specifies IOResources in its IOProviderClass to load a
single instance
of itself, and three others that specify IOMedia in their
IOProviderClass to
load against IOMedia objects as appropriate.
About one in four times I boot a G4 running 10.3.9 with this kext
installed,
I get a slew of messages in the syslog _very_ soon after boot:
syslogd: restart
syslogd: kernel boot file is /mach_kernel
kernel: Couldn't alloc class "foo"
kernel: Couldn't alloc class "bar"
kernel: Couldn't alloc class "baz"
...
kernel: Couldn't alloc class "foo"
kernel: Couldn't alloc class "bar"
kernel: Couldn't alloc class "baz"
kernel: Resetting IOCatalogue.
kextd[84]: registering service "com.apple.KernelExtensionServer"
kernel: Couldn't alloc class "foo"
kernel: Couldn't alloc class "bar"
kernel: Couldn't alloc class "baz"
...
kernel: Couldn't alloc class "foo"
kernel: Couldn't alloc class "bar"
kernel: Couldn't alloc class "baz"
kernel: Matching service count = 198
After this point, instances of my classes start loading successfully.
The classes foo, bar and baz are the ones that match on IOMedia
objects. Their
IOResourceMatch is set to IOBSD and their IOProbeScores are all
intentionally
higher than that of IOMediaBSDClient. The question is: why is
matching and
loading happening for them too early? The test machine is on a fibre
channel
fabric, and it's the IOMedia objects created by the Apple LSI Fusion
driver for
the FC LUNs that are triggering these matches.
The IOKit code in the kernel that generates this message isn't very
helpful,
and neither were my searches on the web. If anyone knows of a way to
add a
dependency that delays this process until the appropriate time I'd be
very
grateful to hear about it. Given that it's the job of these classes
of mine to
match on the fibre channel devices, it might be a question of
delaying the
Apple LSI Fusion driver's publication of its IOMedia objects. I hope
not...
Thanks,
Sam
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-drivers mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-drivers/email@hidden