Re: [v7 00/10] Support cache tune in libvirt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





-- 
Best regards 
Eli

天涯无处不重逢
a leaf duckweed belongs to the sea, where not to meet in life 
Sent with Sparrow

On Sunday, 19 February 2017 at 10:51 PM, Marcelo Tosatti wrote:


Hi Eli Qiao,

Question about removing resctrlfs directories with empty "tasks" file.


/* This domain is not created by libvirt, so we don't care
* about the tasks, add a fake one to prevent
* virResCtrlRefresh
* remove it from sysfs */
virResCtrlAddTask(p, 1);
virResCtrlAppendDomain(p);

/* Refresh all domains', remove the domains which has no task ids.
* This will be used after VM pause, restart, destroy etc.
*/
static int
virResCtrlRefresh(void)

Why are you doing this (removing directories which have no tasks in
them) ? The code should only read information from other
CAT reservations, not write to them.


When a VM get shutdown, their pids will disappear from resctrl’s directory, we can check pids to see if VM get KIlled or not.

The reason why I would like check if tasks file empty is that: there maybe cases that libvirtd not tracking VM’s status, and the VM gone, left a empty directory with no tasks assigned, and cause resource leak.

I think I can refine this later, keep a pointer of ResDomain in VM’s private data and use that to destroy VM’s resctrl directory.

but this won’t work for exception, still resource leak happened.
 
This is not for cleanup purposes, since on VM shutdown the resctrlfs
directories are properly removed:

/* Remove the Domain from sysfs, this should only success no pids in
* tasks
* of a partition.
*/
static
int virResCtrlRemoveDomain(const char *name)
{
char *path = NULL;
int rc = 0;

if ((rc = virAsprintf(&path, "%s/%s", RESCTRL_DIR, name)) < 0)
return rc;
rc = rmdir(path);
VIR_FREE(path);
return rc;
}

Should not write to other directories 'tasks' file.

Other Apps can have a lock to resctrl before it write tasks to prevent libvirtd remove empty task directory.

 

 

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux