For FC, we have several async events, and allow for LLDDs to send their own
data or augment the generic transport event w/ additional LLDD-data. The
infrastructure is implemented generically within the scsi midlayer.
We are using Netlink w/ broadcasts to deliver the events rather than kobject_uevent().
We considered using a variant of kobject events, but the general consensus was
we didn't want to wrap transport events into the kobject infrastructure, and using
netlink natively allowed for transport data to be sent with the event. Additionally,
with the broadcast, we could support any number of tools concurrently listening for
change events. To date, this has worked very well. You may want to consider this,
especially if the types of events is expected to grow beyond the simple "change"
notification.