> Il 05/03/2014 09:01, Zhanghailiang ha scritto: > > Hi all: > > > > Currently, we use cgroup(memory) to support memory QoS on KVM > > platform, and use "mlock" on qemu to support "memory reserved". > > > > The "mlock" seems to be not appropriate. > > > > Now qemu "mlock" memory in the main thread, which would lock iothread > > (qemu_mutex_lock_iothread), if the memory size is large, that will > > consume lots of time. > > > > It means whenever we want to set a new 'mlock', the VM would be > > blocked for a while. > > I'm not sure I understand how the mlock-ed memory is used. Are you using a > custom malloc, for example with g_mem_set_vtable? > > Paolo Hi Paolo: Thanks for your reply. As you know qemu has an option "-mlock", I think it has some problems. If we set "-realtime mlock=on", then qemu will mlockall vm's memory, It is a very time consuming action, and it will block the libvirt api until it finished. so I think it is better to do 'mlock' asynchronously, the flow chart can be described like below. Is it ok? Flow chart: main funciton qmp command "set_ram_minguarantee" | | | | create "mlock" thread change value of lock_ram_size | | | | |------>thread wait<-------------wake up "mlock" thread | | | | | | |-------mlock(lock_ram_zie) zhanghailiang -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list