On Mon, Feb 13, 2017 at 03:46:38PM +0800, Eli Qiao wrote: > Addressed comment from v4 -> v5: > > Marcelo: > * Several typos > * Use flock instead of virFileLock > > Addressed comment from v3 -> v4: > > Daniel & Marcelo: > * Added concurrence support > > Addressed comment from v2 -> v3: > > Daniel: > * Fixed coding style, passed `make check` and `make syntax-check` > > * Variables renaming and move from header file to c file. > > * For locking/mutex support, no progress. > > There are some discussion from mailing list, but I can not find a better > way to add locking support without performance impact. > > I'll explain the process and please help to advice what shoud we do. > > VM create: > 1) Get the cache left value on each bank of the host. This should be > shared amount all VMs. > 2) Calculate the schemata on the bank based on all created resctrl > domain's schemata > 3) Calculate the default schemata by scaning all domain's schemata. > 4) Flush default schemata to /sys/fs/resctrl/schemata > > VM destroy: > 1) Remove the resctrl domain of that VM > 2) Recalculate default schemata > 3) Flush default schemata to /sys/fs/resctrl/schemata > > The key point is that all VMs shares /sys/fs/resctrl/schemata, and > when a VM create a resctrl domain, the schemata of that VM depends on > the default schemata and all other exsited schematas. So a global > mutex is reqired. > > Before calculate a schemata or update default schemata, libvirt > should gain this global mutex. > > I will try to think more about how to support this gracefully in next > patch set. > > Marcelo: > * Added vcpu support for cachetune, this will allow user to define which > vcpu using which cache allocation bank. > > <cachetune id='0' host_id=0 size='3072' unit='KiB' vcpus='0,1'/> > > vcpus is a cpumap, the vcpu pids will be added to tasks file > > * Added cdp compatible, user can specify l3 cache even host enable cdp. > See patch 8. > On a cdp enabled host, specify l3code/l3data by > > <cachetune id='0' host_id='0' type='l3' size='3072' unit='KiB'/> > > This will create a schemata like: > L3data:0=0xff00;... > L3code:0=0xff00;... Working as expected: <cachetune id='10' host_id='1' type='l3' size='2816' unit='KiB' vcpus='1' /> # cat schemata L3DATA:0=1;1=80000 L3CODE:0=1;1=80000 --- <cachetune id='10' host_id='1' type='l3code' size='2816' unit='KiB' vcpus='1' /> <cachetune id='11' host_id='1' type='l3data' size='2816' unit='KiB' vcpus='1' /> # cat schemata L3DATA:0=1;1=40000 L3CODE:0=1;1=80000 Thanks. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list