56
56
57
57
NUM_PAGES_PER_RING = 32 * 11
58
58
MAX_FULL_RINGS = 8
59
- POOL_NAME_KEY = "mem-pool"
60
- POOL_SIZE_KEY = "mem-pool-size-rings"
61
59
62
60
ENABLE_MULTIPLE_ATTACH = "/etc/xensource/allow_multiple_vdi_attach"
63
61
NO_MULTIPLE_ATTACH = not (os .path .exists (ENABLE_MULTIPLE_ATTACH ))
@@ -572,7 +570,6 @@ class Blktap(ClassDevice):
572
570
573
571
def __init__ (self , minor ):
574
572
self .minor = minor
575
- self ._pool = None
576
573
self ._task = None
577
574
578
575
@classmethod
@@ -593,29 +590,6 @@ def __str__(self):
593
590
def sysfs_devname (self ):
594
591
return "blktap!blktap%d" % self .minor
595
592
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
-
619
593
class Task (Attribute ):
620
594
SYSFS_NODENAME = "task"
621
595
@@ -1231,7 +1205,7 @@ def read_minor_from_path(self):
1231
1205
1232
1206
1233
1207
@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 ):
1235
1209
1236
1210
tapdisk = Tapdisk .find_by_path (phy_path )
1237
1211
if not tapdisk :
@@ -1416,41 +1390,6 @@ def _remove_tag(self, vdi_uuid):
1416
1390
else :
1417
1391
util .SMlog ("_remove_tag: host key %s not found, ignore" % host_key )
1418
1392
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
-
1454
1393
def linkNBD (self , sr_uuid , vdi_uuid ):
1455
1394
if self .tap :
1456
1395
nbd_path = '/run/blktap-control/nbd%d.%d' % (int (self .tap .pid ),
@@ -1459,7 +1398,6 @@ def linkNBD(self, sr_uuid, vdi_uuid):
1459
1398
1460
1399
def attach (self , sr_uuid , vdi_uuid , writable , activate = False , caching_params = {}):
1461
1400
"""Return attach details to allow access to storage datapath"""
1462
- self .xenstore_data .update (self ._get_pool_config (sr_uuid ))
1463
1401
if not self .target .has_cap ("ATOMIC_PAUSE" ) or activate :
1464
1402
util .SMlog ("Attach & activate" )
1465
1403
self ._attach (sr_uuid , vdi_uuid )
@@ -1610,8 +1548,7 @@ def _activate(self, sr_uuid, vdi_uuid, options):
1610
1548
if vdi_options :
1611
1549
options .update (vdi_options )
1612
1550
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 )
1615
1552
else :
1616
1553
dev_path = phy_path # Just reuse phy
1617
1554
@@ -1854,9 +1791,6 @@ def _setup_cache(self, session, sr_uuid, vdi_uuid, local_sr_uuid,
1854
1791
1855
1792
blktap = Blktap .allocate ()
1856
1793
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
1860
1794
prt_tapdisk = \
1861
1795
Tapdisk .launch_on_tap (blktap , read_cache_path ,
1862
1796
'vhd' , parent_options )
@@ -2042,75 +1976,14 @@ class __BlktapControl(ClassDevice):
2042
1976
2043
1977
def __init__ (self ):
2044
1978
ClassDevice .__init__ (self )
2045
- self ._default_pool = None
2046
1979
2047
1980
def sysfs_devname (self ):
2048
1981
return "blktap!control"
2049
1982
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 )
2084
1983
2085
1984
BlktapControl = __BlktapControl ()
2086
1985
2087
1986
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
-
2114
1987
class BusDevice (KObject ):
2115
1988
2116
1989
SYSFS_BUSTYPE = None
@@ -2747,10 +2620,6 @@ def usage(stream):
2747
2620
for tapdisk in Tapdisk .list ( ** attrs ):
2748
2621
blktap = tapdisk .get_blktap ()
2749
2622
print (tapdisk , end = ' ' )
2750
- print ("%s: task=%s pool=%s" % \
2751
- (blktap ,
2752
- blktap .get_task_pid (),
2753
- blktap .get_pool_name ()))
2754
2623
2755
2624
elif cmd == 'tap.vbds' :
2756
2625
# Find all Blkback instances for a given tapdisk
0 commit comments