1409437e1SDaniel P. Berrange# 2409437e1SDaniel P. Berrange# Migration test hardware configuration description 3409437e1SDaniel P. Berrange# 4409437e1SDaniel P. Berrange# Copyright (c) 2016 Red Hat, Inc. 5409437e1SDaniel P. Berrange# 6409437e1SDaniel P. Berrange# This library is free software; you can redistribute it and/or 7409437e1SDaniel P. Berrange# modify it under the terms of the GNU Lesser General Public 8409437e1SDaniel P. Berrange# License as published by the Free Software Foundation; either 93a645d36SGan Qixin# version 2.1 of the License, or (at your option) any later version. 10409437e1SDaniel P. Berrange# 11409437e1SDaniel P. Berrange# This library is distributed in the hope that it will be useful, 12409437e1SDaniel P. Berrange# but WITHOUT ANY WARRANTY; without even the implied warranty of 13409437e1SDaniel P. Berrange# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14409437e1SDaniel P. Berrange# Lesser General Public License for more details. 15409437e1SDaniel P. Berrange# 16409437e1SDaniel P. Berrange# You should have received a copy of the GNU Lesser General Public 17409437e1SDaniel P. Berrange# License along with this library; if not, see <http://www.gnu.org/licenses/>. 18409437e1SDaniel P. Berrange# 19409437e1SDaniel P. Berrange 20409437e1SDaniel P. Berrange 21409437e1SDaniel P. Berrangeclass Hardware(object): 22409437e1SDaniel P. Berrange def __init__(self, cpus=1, mem=1, 23409437e1SDaniel P. Berrange src_cpu_bind=None, src_mem_bind=None, 24409437e1SDaniel P. Berrange dst_cpu_bind=None, dst_mem_bind=None, 25409437e1SDaniel P. Berrange prealloc_pages = False, 26*4cc563d4SHyman Huang huge_pages=False, locked_pages=False, 27*4cc563d4SHyman Huang dirty_ring_size=0): 28409437e1SDaniel P. Berrange self._cpus = cpus 29409437e1SDaniel P. Berrange self._mem = mem # GiB 30409437e1SDaniel P. Berrange self._src_mem_bind = src_mem_bind # List of NUMA nodes 31409437e1SDaniel P. Berrange self._src_cpu_bind = src_cpu_bind # List of pCPUs 32409437e1SDaniel P. Berrange self._dst_mem_bind = dst_mem_bind # List of NUMA nodes 33409437e1SDaniel P. Berrange self._dst_cpu_bind = dst_cpu_bind # List of pCPUs 34409437e1SDaniel P. Berrange self._prealloc_pages = prealloc_pages 35409437e1SDaniel P. Berrange self._huge_pages = huge_pages 36409437e1SDaniel P. Berrange self._locked_pages = locked_pages 37*4cc563d4SHyman Huang self._dirty_ring_size = dirty_ring_size 38409437e1SDaniel P. Berrange 39409437e1SDaniel P. Berrange 40409437e1SDaniel P. Berrange def serialize(self): 41409437e1SDaniel P. Berrange return { 42409437e1SDaniel P. Berrange "cpus": self._cpus, 43409437e1SDaniel P. Berrange "mem": self._mem, 44409437e1SDaniel P. Berrange "src_mem_bind": self._src_mem_bind, 45409437e1SDaniel P. Berrange "dst_mem_bind": self._dst_mem_bind, 46409437e1SDaniel P. Berrange "src_cpu_bind": self._src_cpu_bind, 47409437e1SDaniel P. Berrange "dst_cpu_bind": self._dst_cpu_bind, 48409437e1SDaniel P. Berrange "prealloc_pages": self._prealloc_pages, 49409437e1SDaniel P. Berrange "huge_pages": self._huge_pages, 50409437e1SDaniel P. Berrange "locked_pages": self._locked_pages, 51*4cc563d4SHyman Huang "dirty_ring_size": self._dirty_ring_size, 52409437e1SDaniel P. Berrange } 53409437e1SDaniel P. Berrange 54409437e1SDaniel P. Berrange @classmethod 55409437e1SDaniel P. Berrange def deserialize(cls, data): 56409437e1SDaniel P. Berrange return cls( 57409437e1SDaniel P. Berrange data["cpus"], 58409437e1SDaniel P. Berrange data["mem"], 59409437e1SDaniel P. Berrange data["src_cpu_bind"], 60409437e1SDaniel P. Berrange data["src_mem_bind"], 61409437e1SDaniel P. Berrange data["dst_cpu_bind"], 62409437e1SDaniel P. Berrange data["dst_mem_bind"], 63409437e1SDaniel P. Berrange data["prealloc_pages"], 64409437e1SDaniel P. Berrange data["huge_pages"], 65*4cc563d4SHyman Huang data["locked_pages"], 66*4cc563d4SHyman Huang data["dirty_ring_size"]) 67