xref: /openbmc/linux/Documentation/admin-guide/device-mapper/dm-uevent.rst (revision 0898782247ae533d1f4e47a06bc5d4870931b284)
1*6cf2a73cSMauro Carvalho Chehab====================
2*6cf2a73cSMauro Carvalho Chehabdevice-mapper uevent
3*6cf2a73cSMauro Carvalho Chehab====================
4*6cf2a73cSMauro Carvalho Chehab
5*6cf2a73cSMauro Carvalho ChehabThe device-mapper uevent code adds the capability to device-mapper to create
6*6cf2a73cSMauro Carvalho Chehaband send kobject uevents (uevents).  Previously device-mapper events were only
7*6cf2a73cSMauro Carvalho Chehabavailable through the ioctl interface.  The advantage of the uevents interface
8*6cf2a73cSMauro Carvalho Chehabis the event contains environment attributes providing increased context for
9*6cf2a73cSMauro Carvalho Chehabthe event avoiding the need to query the state of the device-mapper device after
10*6cf2a73cSMauro Carvalho Chehabthe event is received.
11*6cf2a73cSMauro Carvalho Chehab
12*6cf2a73cSMauro Carvalho ChehabThere are two functions currently for device-mapper events.  The first function
13*6cf2a73cSMauro Carvalho Chehablisted creates the event and the second function sends the event(s)::
14*6cf2a73cSMauro Carvalho Chehab
15*6cf2a73cSMauro Carvalho Chehab  void dm_path_uevent(enum dm_uevent_type event_type, struct dm_target *ti,
16*6cf2a73cSMauro Carvalho Chehab                      const char *path, unsigned nr_valid_paths)
17*6cf2a73cSMauro Carvalho Chehab
18*6cf2a73cSMauro Carvalho Chehab  void dm_send_uevents(struct list_head *events, struct kobject *kobj)
19*6cf2a73cSMauro Carvalho Chehab
20*6cf2a73cSMauro Carvalho Chehab
21*6cf2a73cSMauro Carvalho ChehabThe variables added to the uevent environment are:
22*6cf2a73cSMauro Carvalho Chehab
23*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_TARGET
24*6cf2a73cSMauro Carvalho Chehab------------------------
25*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
26*6cf2a73cSMauro Carvalho Chehab:Type: string
27*6cf2a73cSMauro Carvalho Chehab:Description:
28*6cf2a73cSMauro Carvalho Chehab:Value: Name of device-mapper target that generated the event.
29*6cf2a73cSMauro Carvalho Chehab
30*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_ACTION
31*6cf2a73cSMauro Carvalho Chehab------------------------
32*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
33*6cf2a73cSMauro Carvalho Chehab:Type: string
34*6cf2a73cSMauro Carvalho Chehab:Description:
35*6cf2a73cSMauro Carvalho Chehab:Value: Device-mapper specific action that caused the uevent action.
36*6cf2a73cSMauro Carvalho Chehab	PATH_FAILED - A path has failed;
37*6cf2a73cSMauro Carvalho Chehab	PATH_REINSTATED - A path has been reinstated.
38*6cf2a73cSMauro Carvalho Chehab
39*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_SEQNUM
40*6cf2a73cSMauro Carvalho Chehab------------------------
41*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
42*6cf2a73cSMauro Carvalho Chehab:Type: unsigned integer
43*6cf2a73cSMauro Carvalho Chehab:Description: A sequence number for this specific device-mapper device.
44*6cf2a73cSMauro Carvalho Chehab:Value: Valid unsigned integer range.
45*6cf2a73cSMauro Carvalho Chehab
46*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_PATH
47*6cf2a73cSMauro Carvalho Chehab----------------------
48*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
49*6cf2a73cSMauro Carvalho Chehab:Type: string
50*6cf2a73cSMauro Carvalho Chehab:Description: Major and minor number of the path device pertaining to this
51*6cf2a73cSMauro Carvalho Chehab	      event.
52*6cf2a73cSMauro Carvalho Chehab:Value: Path name in the form of "Major:Minor"
53*6cf2a73cSMauro Carvalho Chehab
54*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_NR_VALID_PATHS
55*6cf2a73cSMauro Carvalho Chehab--------------------------------
56*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
57*6cf2a73cSMauro Carvalho Chehab:Type: unsigned integer
58*6cf2a73cSMauro Carvalho Chehab:Description:
59*6cf2a73cSMauro Carvalho Chehab:Value: Valid unsigned integer range.
60*6cf2a73cSMauro Carvalho Chehab
61*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_NAME
62*6cf2a73cSMauro Carvalho Chehab----------------------
63*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
64*6cf2a73cSMauro Carvalho Chehab:Type: string
65*6cf2a73cSMauro Carvalho Chehab:Description: Name of the device-mapper device.
66*6cf2a73cSMauro Carvalho Chehab:Value: Name
67*6cf2a73cSMauro Carvalho Chehab
68*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_UUID
69*6cf2a73cSMauro Carvalho Chehab----------------------
70*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE
71*6cf2a73cSMauro Carvalho Chehab:Type: string
72*6cf2a73cSMauro Carvalho Chehab:Description: UUID of the device-mapper device.
73*6cf2a73cSMauro Carvalho Chehab:Value: UUID. (Empty string if there isn't one.)
74*6cf2a73cSMauro Carvalho Chehab
75*6cf2a73cSMauro Carvalho ChehabAn example of the uevents generated as captured by udevmonitor is shown
76*6cf2a73cSMauro Carvalho Chehabbelow
77*6cf2a73cSMauro Carvalho Chehab
78*6cf2a73cSMauro Carvalho Chehab1.) Path failure::
79*6cf2a73cSMauro Carvalho Chehab
80*6cf2a73cSMauro Carvalho Chehab	UEVENT[1192521009.711215] change@/block/dm-3
81*6cf2a73cSMauro Carvalho Chehab	ACTION=change
82*6cf2a73cSMauro Carvalho Chehab	DEVPATH=/block/dm-3
83*6cf2a73cSMauro Carvalho Chehab	SUBSYSTEM=block
84*6cf2a73cSMauro Carvalho Chehab	DM_TARGET=multipath
85*6cf2a73cSMauro Carvalho Chehab	DM_ACTION=PATH_FAILED
86*6cf2a73cSMauro Carvalho Chehab	DM_SEQNUM=1
87*6cf2a73cSMauro Carvalho Chehab	DM_PATH=8:32
88*6cf2a73cSMauro Carvalho Chehab	DM_NR_VALID_PATHS=0
89*6cf2a73cSMauro Carvalho Chehab	DM_NAME=mpath2
90*6cf2a73cSMauro Carvalho Chehab	DM_UUID=mpath-35333333000002328
91*6cf2a73cSMauro Carvalho Chehab	MINOR=3
92*6cf2a73cSMauro Carvalho Chehab	MAJOR=253
93*6cf2a73cSMauro Carvalho Chehab	SEQNUM=1130
94*6cf2a73cSMauro Carvalho Chehab
95*6cf2a73cSMauro Carvalho Chehab2.) Path reinstate::
96*6cf2a73cSMauro Carvalho Chehab
97*6cf2a73cSMauro Carvalho Chehab	UEVENT[1192521132.989927] change@/block/dm-3
98*6cf2a73cSMauro Carvalho Chehab	ACTION=change
99*6cf2a73cSMauro Carvalho Chehab	DEVPATH=/block/dm-3
100*6cf2a73cSMauro Carvalho Chehab	SUBSYSTEM=block
101*6cf2a73cSMauro Carvalho Chehab	DM_TARGET=multipath
102*6cf2a73cSMauro Carvalho Chehab	DM_ACTION=PATH_REINSTATED
103*6cf2a73cSMauro Carvalho Chehab	DM_SEQNUM=2
104*6cf2a73cSMauro Carvalho Chehab	DM_PATH=8:32
105*6cf2a73cSMauro Carvalho Chehab	DM_NR_VALID_PATHS=1
106*6cf2a73cSMauro Carvalho Chehab	DM_NAME=mpath2
107*6cf2a73cSMauro Carvalho Chehab	DM_UUID=mpath-35333333000002328
108*6cf2a73cSMauro Carvalho Chehab	MINOR=3
109*6cf2a73cSMauro Carvalho Chehab	MAJOR=253
110*6cf2a73cSMauro Carvalho Chehab	SEQNUM=1131
111