
--Apple-Mail=_64C09473-EDEA-4FA9-8643-DC7E66D3674C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hello Martin, Thank you for your time. It is clear how to create partition and assign = it to a VM. But libvirt manipulates with contents of devices.list and I = didn't find a way to put my devices into devices.list and stop libvirt = from removing them. Anyway, it looks like that the best solution will be using oVirt 4.0 = where scsi pass-through have been fixed. -- Dmitry Glushenok Jet Infosystems http://www.jet.msk.su <http://www.jet.msk.su/>+7-495-411-7601 (ext. = 1237)
6 =D0=B8=D1=8E=D0=BD=D1=8F 2016 =D0=B3., =D0=B2 12:33, Martin Polednik = <mpolednik@redhat.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB(=D0=B0):=
=20 On 03/06/16 14:05 +0300, =D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9 = =D0=93=D0=BB=D1=83=D1=88=D0=B5=D0=BD=D0=BE=D0=BA wrote:
Thank you Martin! =20 Actually I tried the workaround hook, provided in [2], but then VDSM = (oVirt 3.6.6) tries to interpret hostdev in XML as PCI device, which = leads to: =20 ::The vm start process failed Traceback (most recent call last): File "/usr/share/vdsm/virt/vm.py", line 703, in _startUnderlyingVm self._run() File "/usr/share/vdsm/virt/vm.py", line 1949, in _run self._domDependentInit() File "/usr/share/vdsm/virt/vm.py", line 1797, in _domDependentInit self._getUnderlyingVmDevicesInfo() File "/usr/share/vdsm/virt/vm.py", line 1738, in = _getUnderlyingVmDevicesInfo self._getUnderlyingHostDeviceInfo() File "/usr/share/vdsm/virt/vm.py", line 4277, in = _getUnderlyingHostDeviceInfo **self._getUnderlyingDeviceAddress(source)) TypeError: pci_address_to_name() got an unexpected keyword argument = 'target' =20 XML part was: <hostdev managed=3D"no" mode=3D"subsystem" rawio=3D"yes" type=3D"scsi">=
<source> <adapter name=3D"scsi_host2"/> <address bus=3D"0" target=3D"1" unit=3D"0"/> </source> </hostdev> <hostdev managed=3D"no" mode=3D"subsystem" rawio=3D"yes" type=3D"scsi">=
<source> <adapter name=3D"scsi_host2"/> <address bus=3D"0" target=3D"2" unit=3D"0"/> </source> </hostdev> =20 =20 As of creating custom partition - by default machine.slice has "a *:* = rwm" in devices.list. But for every new VM libvirt removes *:* mask and = fills the list with actually needed devices (as I understand the = process). For example: =20 c 136:* rw c 1:3 rw c 1:7 rw c 1:5 rw c 1:8 rw c 1:9 rw c 5:2 rw c 10:232 rw c 253:0 rw c 10:228 rw c 10:196 rw =20 What I'm looking for is a way to tell libvirt about my additional = devices without breaking oVirt. =20 The solution would be creating your own partition and somehow (e.g. VDSM hook) appending =20 <resource> <partition>/machine/custom</partition> </resource> =20 to the libvirt's <domain> element. I'm not sure how feasible creating your own partition is though. I've tried the process as follows: =20 $ cat ~/create-partition.sh # sh ~/create-partition.sh for i in blkio cpu,cpuacct cpuset devices freezer memory net_cls = perf_event do mkdir /sys/fs/cgroup/$i/machine.slice/custom.partition done =20 for i in cpuset.cpus cpuset.mems do cat /sys/fs/cgroup/cpuset/machine.slice/$i > = /sys/fs/cgroup/cpuset/machine.slice/custom.partition/$i done =20 (creates /machine/custom partition). Now, we can create vdsm before_vm_start hook that will set given = partition for the VM: =20 $ pwd /usr/libexec/vdsm/hooks/before_vm_start $ cat 10_cgroups =20 #!/usr/bin/python =20 import hooking =20 =20 def custom_partition(domxml): resource =3D domxml.createElement('resource') partition =3D domxml.createElement('partition') partition_text =3D domxml.createTextNode('/machine/custom') partition.appendChild(partition_text) resource.appendChild(partition) =20 return resource =20 domxml =3D hooking.read_domxml() domain =3D domxml.getElementsByTagName('domain')[0] domain.appendChild(custom_partition(domxml)) hooking.write_domxml(domxml) =20 -- Dmitry Glushenok Jet Infosystems http://www.jet.msk.su +7-495-411-7601 (ext. 1237) =20
Hello! =20 Is it possible to tell libvirt to add specific devices to qemu = cgroup? By somehow enumerating the devices in XML using a hook for = example. I'm passing scsi-generic disks (/dev/sgX) to VM using qemucmdline = hook and it doesn't work until I remove "devices" from = cgroup_controllers in qemu.conf. =20 One way to achieve this is creating a hook to generate the scsi = device XML instead of modifying qemu cmdline directly. Libvirt assumes ownership of all devices created in the XML and therefore adds them = to
3 =D0=B8=D1=8E=D0=BD=D1=8F 2016 =D0=B3., =D0=B2 12:24, Martin = Polednik <mpolednik@redhat.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB= (=D0=B0): =20 On 03/06/16 11:48 +0300, =D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9 = =D0=93=D0=BB=D1=83=D1=88=D0=B5=D0=BD=D0=BE=D0=BA wrote: the machine cgroup. =20 Example of the XML taken from [1]: <devices> <hostdev mode=3D'subsystem' type=3D'scsi' sgio=3D'filtered' = rawio=3D'yes'> <source> <adapter name=3D'scsi_host0'/> <address bus=3D'0' target=3D'0' unit=3D'0'/> </source> <readonly/> <address type=3D'drive' controller=3D'0' bus=3D'0' target=3D'0' = unit=3D'0'/> </hostdev> </devices> =20 There is slight issue with this approach outlined in [2]. =20 If you want to keep the qemu approach, I think creating a custom partition and moving devices there would be the cleanest approach. = In this case, [3] could help but I'm not entirely sure if that would solve the issue. =20 [1] https://libvirt.org/formatdomain.html [2] https://bugzilla.redhat.com/show_bug.cgi?id=3D1325485 [3] https://libvirt.org/cgroups.html
-- Dmitry Glushenok Jet Infosystems http://www.jet.msk.su +7-495-411-7601 (ext. 1237) =20 _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
--Apple-Mail=_64C09473-EDEA-4FA9-8643-DC7E66D3674C Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div class=3D"">Hello Martin,</div><div class=3D""><br = class=3D""></div><div class=3D"">Thank you for your time. It is clear = how to create partition and assign it to a VM. But libvirt manipulates = with contents of devices.list and I didn't find a way to put my devices = into devices.list and stop libvirt from removing them.</div><div = class=3D""><br class=3D""></div><div class=3D"">Anyway, it looks like = that the best solution will be using oVirt 4.0 where scsi pass-through = have been fixed.</div><br class=3D""><div class=3D""> <div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: = auto; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div class=3D"">--</div><div class=3D""><div class=3D"" = style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;"><div class=3D"" = style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;"><div class=3D"" = style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;"><div class=3D"">Dmitry = Glushenok</div><div class=3D"">Jet Infosystems</div><div class=3D""><a = href=3D"http://www.jet.msk.su" = class=3D"">http://www.jet.msk.su</a></div></div></div></div>+7-495-411-760= 1 (ext. 1237)</div></div></div></div></div></div> </div> <br class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">6= =D0=B8=D1=8E=D0=BD=D1=8F 2016 =D0=B3., =D0=B2 12:33, Martin Polednik = <<a href=3D"mailto:mpolednik@redhat.com" = class=3D"">mpolednik@redhat.com</a>> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0= =D0=BB(=D0=B0):</div><br class=3D"Apple-interchange-newline"><div = class=3D""><span style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">On 03/06/16 14:05 +0300, = =D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9 =D0=93=D0=BB=D1=83=D1=88=D0=B5=D0= =BD=D0=BE=D0=BA wrote:</span><br style=3D"font-family: Menlo-Regular; = font-size: 13px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;" class=3D""><blockquote type=3D"cite" style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D"">Thank you Martin!<br = class=3D""><br class=3D"">Actually I tried the workaround hook, provided = in [2], but then VDSM (oVirt 3.6.6) tries to interpret hostdev in XML as = PCI device, which leads to:<br class=3D""><br class=3D"">::The vm start = process failed<br class=3D"">Traceback (most recent call last):<br = class=3D"">File "/usr/share/vdsm/virt/vm.py", line 703, in = _startUnderlyingVm<br class=3D""> self._run()<br = class=3D"">File "/usr/share/vdsm/virt/vm.py", line 1949, in _run<br = class=3D""> self._domDependentInit()<br class=3D"">File = "/usr/share/vdsm/virt/vm.py", line 1797, in _domDependentInit<br = class=3D""> self._getUnderlyingVmDevicesInfo()<br = class=3D"">File "/usr/share/vdsm/virt/vm.py", line 1738, in = _getUnderlyingVmDevicesInfo<br = class=3D""> self._getUnderlyingHostDeviceInfo()<br = class=3D"">File "/usr/share/vdsm/virt/vm.py", line 4277, in = _getUnderlyingHostDeviceInfo<br = class=3D""> **self._getUnderlyingDeviceAddress(source))<br = class=3D"">TypeError: pci_address_to_name() got an unexpected keyword = argument 'target'<br class=3D""><br class=3D"">XML part was:<br = class=3D""><hostdev managed=3D"no" mode=3D"subsystem" rawio=3D"yes" = type=3D"scsi"><br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><source><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><adapter name=3D"scsi_host2"/><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><address bus=3D"0" target=3D"1" unit=3D"0"/><br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span></source><br class=3D""></hostdev><br = class=3D""><hostdev managed=3D"no" mode=3D"subsystem" rawio=3D"yes" = type=3D"scsi"><br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><source><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><adapter name=3D"scsi_host2"/><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><address bus=3D"0" target=3D"2" unit=3D"0"/><br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span></source><br class=3D""></hostdev><br class=3D""><br = class=3D""><br class=3D"">As of creating custom partition - by default = machine.slice has "a *:* rwm" in devices.list. But for every new VM = libvirt removes *:* mask and fills the list with actually needed devices = (as I understand the process). For example:<br class=3D""><br class=3D"">c= 136:* rw<br class=3D"">c 1:3 rw<br class=3D"">c 1:7 rw<br class=3D"">c = 1:5 rw<br class=3D"">c 1:8 rw<br class=3D"">c 1:9 rw<br class=3D"">c 5:2 = rw<br class=3D"">c 10:232 rw<br class=3D"">c 253:0 rw<br class=3D"">c = 10:228 rw<br class=3D"">c 10:196 rw<br class=3D""><br class=3D"">What = I'm looking for is a way to tell libvirt about my additional devices = without breaking oVirt.<br class=3D""></blockquote><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">The solution would be creating = your own partition and somehow (e.g.</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">VDSM hook) appending</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""><resource></span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" = class=3D""> <partition>/machine/custom</partition><= /span><br style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><span style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D""></resource></span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">to the libvirt's <domain> = element. I'm not sure how feasible creating</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">your own partition is though. = I've tried the process as follows:</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family:= Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">$ cat = ~/create-partition.sh</span><br style=3D"font-family: Menlo-Regular; = font-size: 13px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;" class=3D""><span style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D""># sh = ~/create-partition.sh</span><br style=3D"font-family: Menlo-Regular; = font-size: 13px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;" class=3D""><span style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">for i in blkio cpu,cpuacct = cpuset devices freezer memory net_cls perf_event</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">do</span><br style=3D"font-family:= Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""> mkdir = /sys/fs/cgroup/$i/machine.slice/custom.partition</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">done</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">for i in cpuset.cpus = cpuset.mems</span><br style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><span style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">do</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""> cat = /sys/fs/cgroup/cpuset/machine.slice/$i > = /sys/fs/cgroup/cpuset/machine.slice/custom.partition/$i</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">done</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">(creates /machine/custom = partition).</span><br style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><span style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">Now, we can create vdsm = before_vm_start hook that will set given partition</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">for the VM:</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">$ pwd = /usr/libexec/vdsm/hooks/before_vm_start</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">$ cat 10_cgroups</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">#!/usr/bin/python</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">import hooking</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D"">def = custom_partition(domxml):</span><br style=3D"font-family: Menlo-Regular; = font-size: 13px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;" class=3D""><span style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D""> resource =3D = domxml.createElement('resource')</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""> partition =3D = domxml.createElement('partition')</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""> partition_text =3D = domxml.createTextNode('/machine/custom')</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" = class=3D""> partition.appendChild(partition_text)</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" = class=3D""> resource.appendChild(partition)</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" class=3D""> return = resource</span><br style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><br style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><span style=3D"font-family: Menlo-Regular; font-size: 13px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">domxml =3D = hooking.read_domxml()</span><br style=3D"font-family: Menlo-Regular; = font-size: 13px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;" class=3D""><span style=3D"font-family: Menlo-Regular; font-size: = 13px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;" class=3D"">domain =3D = domxml.getElementsByTagName('domain')[0]</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><span = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" = class=3D"">domain.appendChild(custom_partition(domxml))</span><br = style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; = display: inline !important;" = class=3D"">hooking.write_domxml(domxml)</span><br style=3D"font-family: = Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family:= Menlo-Regular; font-size: 13px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><blockquote type=3D"cite"= style=3D"font-family: Menlo-Regular; font-size: 13px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D"">--<br= class=3D"">Dmitry Glushenok<br class=3D"">Jet Infosystems<br = class=3D""><a href=3D"http://www.jet.msk.su" = class=3D"">http://www.jet.msk.su</a><br class=3D"">+7-495-411-7601 (ext. = 1237)<br class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">3 = =D0=B8=D1=8E=D0=BD=D1=8F 2016 =D0=B3., =D0=B2 12:24, Martin Polednik = <mpolednik@redhat.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB(=D0= =B0):<br class=3D""><br class=3D"">On 03/06/16 11:48 +0300, = =D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9 =D0=93=D0=BB=D1=83=D1=88=D0=B5=D0= =BD=D0=BE=D0=BA wrote:<br class=3D""><blockquote type=3D"cite" = class=3D"">Hello!<br class=3D""><br class=3D"">Is it possible to tell = libvirt to add specific devices to qemu cgroup? By somehow enumerating = the devices in XML using a hook for example.<br class=3D"">I'm passing = scsi-generic disks (/dev/sgX) to VM using qemucmdline hook and it = doesn't work until I remove "devices" from cgroup_controllers in = qemu.conf.<br class=3D""></blockquote><br class=3D"">One way to achieve = this is creating a hook to generate the scsi device<br class=3D"">XML = instead of modifying qemu cmdline directly. Libvirt assumes<br = class=3D"">ownership of all devices created in the XML and therefore = adds them to<br class=3D"">the machine cgroup.<br class=3D""><br = class=3D"">Example of the XML taken from [1]:<br = class=3D""><devices><br class=3D""> <hostdev = mode=3D'subsystem' type=3D'scsi' sgio=3D'filtered' rawio=3D'yes'><br = class=3D""> <source><br = class=3D""> <adapt= er name=3D'scsi_host0'/><br = class=3D""> <addre= ss bus=3D'0' target=3D'0' unit=3D'0'/><br = class=3D""> </source><br = class=3D""> <readonly/><br = class=3D""> <address type=3D'drive' = controller=3D'0' bus=3D'0' target=3D'0' unit=3D'0'/><br = class=3D""> </hostdev><br class=3D""></devices><br = class=3D""><br class=3D"">There is slight issue with this approach = outlined in [2].<br class=3D""><br class=3D"">If you want to keep the = qemu approach, I think creating a custom<br class=3D"">partition and = moving devices there would be the cleanest approach. In<br class=3D"">this= case, [3] could help but I'm not entirely sure if that would<br = class=3D"">solve the issue.<br class=3D""><br class=3D"">[1] = https://libvirt.org/formatdomain.html<br class=3D"">[2] = https://bugzilla.redhat.com/show_bug.cgi?id=3D1325485<br class=3D"">[3] = https://libvirt.org/cgroups.html<br class=3D""><blockquote type=3D"cite" = class=3D"">--<br class=3D"">Dmitry Glushenok<br class=3D"">Jet = Infosystems<br class=3D"">http://www.jet.msk.su<br = class=3D"">+7-495-411-7601 (ext. 1237)<br class=3D""><br = class=3D"">_______________________________________________<br = class=3D"">Users mailing list<br class=3D"">Users@ovirt.org<br = class=3D"">http://lists.ovirt.org/mailman/listinfo/users</blockquote></blo= ckquote></blockquote></div></blockquote></div><br = class=3D""></body></html>= --Apple-Mail=_64C09473-EDEA-4FA9-8643-DC7E66D3674C--