Skip to content

Commit d63908f

Browse files
committed
CA-376860: remove kernel driver memory pools
Signed-off-by: Mark Syms <[email protected]>
1 parent ce22e8c commit d63908f

File tree

1 file changed

+2
-133
lines changed

1 file changed

+2
-133
lines changed

drivers/blktap2.py

+2-133
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@
5656

5757
NUM_PAGES_PER_RING = 32 * 11
5858
MAX_FULL_RINGS = 8
59-
POOL_NAME_KEY = "mem-pool"
60-
POOL_SIZE_KEY = "mem-pool-size-rings"
6159

6260
ENABLE_MULTIPLE_ATTACH = "/etc/xensource/allow_multiple_vdi_attach"
6361
NO_MULTIPLE_ATTACH = not (os.path.exists(ENABLE_MULTIPLE_ATTACH))
@@ -572,7 +570,6 @@ class Blktap(ClassDevice):
572570

573571
def __init__(self, minor):
574572
self.minor = minor
575-
self._pool = None
576573
self._task = None
577574

578575
@classmethod
@@ -593,29 +590,6 @@ def __str__(self):
593590
def sysfs_devname(self):
594591
return "blktap!blktap%d" % self.minor
595592

596-
class Pool(Attribute):
597-
SYSFS_NODENAME = "pool"
598-
599-
def get_pool_attr(self):
600-
if not self._pool:
601-
self._pool = self.Pool.from_kobject(self)
602-
return self._pool
603-
604-
def get_pool_name(self):
605-
return self.get_pool_attr().readline()
606-
607-
def set_pool_name(self, name):
608-
self.get_pool_attr().writeline(name)
609-
610-
def set_pool_size(self, pages):
611-
self.get_pool().set_size(pages)
612-
613-
def get_pool(self):
614-
return BlktapControl.get_pool(self.get_pool_name())
615-
616-
def set_pool(self, pool):
617-
self.set_pool_name(pool.name)
618-
619593
class Task(Attribute):
620594
SYSFS_NODENAME = "task"
621595

@@ -1231,7 +1205,7 @@ def read_minor_from_path(self):
12311205

12321206

12331207
@staticmethod
1234-
def _tap_activate(phy_path, vdi_type, sr_uuid, options, pool_size=None):
1208+
def _tap_activate(phy_path, vdi_type, sr_uuid, options):
12351209

12361210
tapdisk = Tapdisk.find_by_path(phy_path)
12371211
if not tapdisk:
@@ -1416,41 +1390,6 @@ def _remove_tag(self, vdi_uuid):
14161390
else:
14171391
util.SMlog("_remove_tag: host key %s not found, ignore" % host_key)
14181392

1419-
def _get_pool_config(self, pool_name):
1420-
pool_info = dict()
1421-
vdi_ref = self.target.vdi.sr.srcmd.params.get('vdi_ref')
1422-
if not vdi_ref:
1423-
# attach_from_config context: HA disks don't need to be in any
1424-
# special pool
1425-
return pool_info
1426-
1427-
sr_ref = self.target.vdi.sr.srcmd.params.get('sr_ref')
1428-
sr_config = self._session.xenapi.SR.get_other_config(sr_ref)
1429-
vdi_config = self._session.xenapi.VDI.get_other_config(vdi_ref)
1430-
pool_size_str = sr_config.get(POOL_SIZE_KEY)
1431-
pool_name_override = vdi_config.get(POOL_NAME_KEY)
1432-
if pool_name_override:
1433-
pool_name = pool_name_override
1434-
pool_size_override = vdi_config.get(POOL_SIZE_KEY)
1435-
if pool_size_override:
1436-
pool_size_str = pool_size_override
1437-
pool_size = 0
1438-
if pool_size_str:
1439-
try:
1440-
pool_size = int(pool_size_str)
1441-
if pool_size < 1 or pool_size > MAX_FULL_RINGS:
1442-
raise ValueError("outside of range")
1443-
pool_size = NUM_PAGES_PER_RING * pool_size
1444-
except ValueError:
1445-
util.SMlog("Error: invalid mem-pool-size %s" % pool_size_str)
1446-
pool_size = 0
1447-
1448-
pool_info["mem-pool"] = pool_name
1449-
if pool_size:
1450-
pool_info["mem-pool-size"] = str(pool_size)
1451-
1452-
return pool_info
1453-
14541393
def linkNBD(self, sr_uuid, vdi_uuid):
14551394
if self.tap:
14561395
nbd_path = '/run/blktap-control/nbd%d.%d' % (int(self.tap.pid),
@@ -1459,7 +1398,6 @@ def linkNBD(self, sr_uuid, vdi_uuid):
14591398

14601399
def attach(self, sr_uuid, vdi_uuid, writable, activate=False, caching_params={}):
14611400
"""Return attach details to allow access to storage datapath"""
1462-
self.xenstore_data.update(self._get_pool_config(sr_uuid))
14631401
if not self.target.has_cap("ATOMIC_PAUSE") or activate:
14641402
util.SMlog("Attach & activate")
14651403
self._attach(sr_uuid, vdi_uuid)
@@ -1610,8 +1548,7 @@ def _activate(self, sr_uuid, vdi_uuid, options):
16101548
if vdi_options:
16111549
options.update(vdi_options)
16121550
dev_path, self.tap = self._tap_activate(phy_path, vdi_type,
1613-
sr_uuid, options,
1614-
self._get_pool_config(sr_uuid).get("mem-pool-size"))
1551+
sr_uuid, options)
16151552
else:
16161553
dev_path = phy_path # Just reuse phy
16171554

@@ -1854,9 +1791,6 @@ def _setup_cache(self, session, sr_uuid, vdi_uuid, local_sr_uuid,
18541791

18551792
blktap = Blktap.allocate()
18561793
try:
1857-
blktap.set_pool_name("lcache-parent-pool-%s" % blktap.minor)
1858-
# no need to change pool_size since each parent tapdisk is in
1859-
# its own pool
18601794
prt_tapdisk = \
18611795
Tapdisk.launch_on_tap(blktap, read_cache_path,
18621796
'vhd', parent_options)
@@ -2042,75 +1976,14 @@ class __BlktapControl(ClassDevice):
20421976

20431977
def __init__(self):
20441978
ClassDevice.__init__(self)
2045-
self._default_pool = None
20461979

20471980
def sysfs_devname(self):
20481981
return "blktap!control"
20491982

2050-
class DefaultPool(Attribute):
2051-
SYSFS_NODENAME = "default_pool"
2052-
2053-
def get_default_pool_attr(self):
2054-
if not self._default_pool:
2055-
self._default_pool = self.DefaultPool.from_kobject(self)
2056-
return self._default_pool
2057-
2058-
def get_default_pool_name(self):
2059-
return self.get_default_pool_attr().readline()
2060-
2061-
def set_default_pool_name(self, name):
2062-
self.get_default_pool_attr().writeline(name)
2063-
2064-
def get_default_pool(self):
2065-
return BlktapControl.get_pool(self.get_default_pool_name())
2066-
2067-
def set_default_pool(self, pool):
2068-
self.set_default_pool_name(pool.name)
2069-
2070-
class NoSuchPool(Exception):
2071-
def __init__(self, name):
2072-
self.name = name
2073-
2074-
def __str__(self):
2075-
return "No such pool: {}".format(self.name)
2076-
2077-
def get_pool(self, name):
2078-
path = "%s/pools/%s" % (self.sysfs_path(), name)
2079-
2080-
if not os.path.isdir(path):
2081-
raise self.NoSuchPool(name)
2082-
2083-
return PagePool(path)
20841983

20851984
BlktapControl = __BlktapControl()
20861985

20871986

2088-
class PagePool(KObject):
2089-
2090-
def __init__(self, path):
2091-
self.path = path
2092-
self._size = None
2093-
2094-
def sysfs_path(self):
2095-
return self.path
2096-
2097-
class Size(Attribute):
2098-
SYSFS_NODENAME = "size"
2099-
2100-
def get_size_attr(self):
2101-
if not self._size:
2102-
self._size = self.Size.from_kobject(self)
2103-
return self._size
2104-
2105-
def set_size(self, pages):
2106-
pages = str(pages)
2107-
self.get_size_attr().writeline(pages)
2108-
2109-
def get_size(self):
2110-
pages = self.get_size_attr().readline()
2111-
return int(pages)
2112-
2113-
21141987
class BusDevice(KObject):
21151988

21161989
SYSFS_BUSTYPE = None
@@ -2747,10 +2620,6 @@ def usage(stream):
27472620
for tapdisk in Tapdisk.list( ** attrs):
27482621
blktap = tapdisk.get_blktap()
27492622
print(tapdisk, end=' ')
2750-
print("%s: task=%s pool=%s" % \
2751-
(blktap,
2752-
blktap.get_task_pid(),
2753-
blktap.get_pool_name()))
27542623

27552624
elif cmd == 'tap.vbds':
27562625
# Find all Blkback instances for a given tapdisk

0 commit comments

Comments
 (0)