Merge "2M hugepage appears to be larger than the context help"
This commit is contained in:
commit
86e7d94c11
@ -1771,3 +1771,19 @@ class AgentManager(service.PeriodicService):
|
|||||||
return self._idisk_operator.disk_format_gpt(host_uuid,
|
return self._idisk_operator.disk_format_gpt(host_uuid,
|
||||||
idisk_dict,
|
idisk_dict,
|
||||||
is_cinder_device)
|
is_cinder_device)
|
||||||
|
|
||||||
|
def update_host_memory(self, context, host_uuid):
|
||||||
|
"""update the host memory
|
||||||
|
|
||||||
|
:param context: an admin context
|
||||||
|
:param host_uuid: ihost uuid unique id
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
if self._ihost_uuid and self._ihost_uuid == host_uuid:
|
||||||
|
rpcapi = conductor_rpcapi.ConductorAPI(
|
||||||
|
topic=conductor_rpcapi.MANAGER_TOPIC)
|
||||||
|
memory = self._inode_operator.inodes_get_imemory()
|
||||||
|
rpcapi.imemory_update_by_ihost(context,
|
||||||
|
self._ihost_uuid,
|
||||||
|
memory,
|
||||||
|
force_update=True)
|
||||||
|
@ -502,9 +502,10 @@ class NodeOperator(object):
|
|||||||
'vm_hugepages_possible_1G': max_vm_pages_1G,
|
'vm_hugepages_possible_1G': max_vm_pages_1G,
|
||||||
})
|
})
|
||||||
|
|
||||||
# calculate 100% 2M pages if it is initial report and the huge
|
# calculate 90% 2M pages if it is initial report and the huge
|
||||||
# pages have not been allocated
|
# pages have not been allocated
|
||||||
if initial_report:
|
if initial_report:
|
||||||
|
max_vm_pages_2M = max_vm_pages_2M * 0.9
|
||||||
Total_HP_MiB += int(max_vm_pages_2M * (SZ_2M_Ki / Ki))
|
Total_HP_MiB += int(max_vm_pages_2M * (SZ_2M_Ki / Ki))
|
||||||
Free_HP_MiB = Total_HP_MiB
|
Free_HP_MiB = Total_HP_MiB
|
||||||
attr.update({
|
attr.update({
|
||||||
|
@ -271,3 +271,14 @@ class AgentAPI(sysinv.openstack.common.rpc.proxy.RpcProxy):
|
|||||||
host_uuid=host_uuid,
|
host_uuid=host_uuid,
|
||||||
idisk_dict=idisk_dict,
|
idisk_dict=idisk_dict,
|
||||||
is_cinder_device=is_cinder_device))
|
is_cinder_device=is_cinder_device))
|
||||||
|
|
||||||
|
def update_host_memory(self, context, host_uuid):
|
||||||
|
"""Asynchronously, have the agent to send host memory update
|
||||||
|
|
||||||
|
:param context: request context.
|
||||||
|
:param host_uuid: ihost uuid unique id
|
||||||
|
:returns: pass or fail
|
||||||
|
"""
|
||||||
|
return self.fanout_cast(context,
|
||||||
|
self.make_msg('update_host_memory',
|
||||||
|
host_uuid=host_uuid))
|
||||||
|
@ -2140,6 +2140,12 @@ class HostController(rest.RestController):
|
|||||||
LOG.info("host %s %s patch" % (ihost_obj.hostname,
|
LOG.info("host %s %s patch" % (ihost_obj.hostname,
|
||||||
log_end))
|
log_end))
|
||||||
|
|
||||||
|
if ('administrative' in hostupdate.delta and
|
||||||
|
hostupdate.ihost_patch['administrative'] ==
|
||||||
|
constants.ADMIN_LOCKED):
|
||||||
|
LOG.info("Update host memory for (%s)" % ihost_obj['hostname'])
|
||||||
|
pecan.request.rpcapi.update_host_memory(pecan.request.context,
|
||||||
|
ihost_obj['uuid'])
|
||||||
return Host.convert_with_links(ihost_obj)
|
return Host.convert_with_links(ihost_obj)
|
||||||
|
|
||||||
def _vim_host_add(self, ihost):
|
def _vim_host_add(self, ihost):
|
||||||
|
@ -2744,7 +2744,8 @@ class ConductorManager(service.PeriodicService):
|
|||||||
return {'platform_reserved_mib': reserved} if reserved else {}
|
return {'platform_reserved_mib': reserved} if reserved else {}
|
||||||
|
|
||||||
def imemory_update_by_ihost(self, context,
|
def imemory_update_by_ihost(self, context,
|
||||||
ihost_uuid, imemory_dict_array):
|
ihost_uuid, imemory_dict_array,
|
||||||
|
force_update):
|
||||||
"""Create or update imemory for an ihost with the supplied data.
|
"""Create or update imemory for an ihost with the supplied data.
|
||||||
|
|
||||||
This method allows records for memory for ihost to be created,
|
This method allows records for memory for ihost to be created,
|
||||||
@ -2753,6 +2754,7 @@ class ConductorManager(service.PeriodicService):
|
|||||||
:param context: an admin context
|
:param context: an admin context
|
||||||
:param ihost_uuid: ihost uuid unique id
|
:param ihost_uuid: ihost uuid unique id
|
||||||
:param imemory_dict_array: initial values for cpu objects
|
:param imemory_dict_array: initial values for cpu objects
|
||||||
|
:param: force_update: force host memory update
|
||||||
:returns: pass or fail
|
:returns: pass or fail
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -2763,6 +2765,12 @@ class ConductorManager(service.PeriodicService):
|
|||||||
LOG.exception("Invalid ihost_uuid %s" % ihost_uuid)
|
LOG.exception("Invalid ihost_uuid %s" % ihost_uuid)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if ihost['administrative'] == constants.ADMIN_LOCKED and \
|
||||||
|
ihost['invprovision'] == constants.PROVISIONED and \
|
||||||
|
not force_update:
|
||||||
|
LOG.debug("Ignore the host memory audit after the host is locked")
|
||||||
|
return
|
||||||
|
|
||||||
forihostid = ihost['id']
|
forihostid = ihost['id']
|
||||||
ihost_inodes = self.dbapi.inode_get_by_ihost(ihost_uuid)
|
ihost_inodes = self.dbapi.inode_get_by_ihost(ihost_uuid)
|
||||||
|
|
||||||
@ -10212,3 +10220,13 @@ class ConductorManager(service.PeriodicService):
|
|||||||
}
|
}
|
||||||
body['metadata']['labels'].update(label_dict)
|
body['metadata']['labels'].update(label_dict)
|
||||||
self._kube.kube_patch_node(host.hostname, body)
|
self._kube.kube_patch_node(host.hostname, body)
|
||||||
|
|
||||||
|
def update_host_memory(self, context, host_uuid):
|
||||||
|
try:
|
||||||
|
host = self.dbapi.ihost_get(host_uuid)
|
||||||
|
except exception.ServerNotFound:
|
||||||
|
LOG.error("Cannot find host by id %s" % host_uuid)
|
||||||
|
return
|
||||||
|
|
||||||
|
rpcapi = agent_rpcapi.AgentAPI()
|
||||||
|
rpcapi.update_host_memory(context, host.uuid)
|
||||||
|
@ -308,7 +308,8 @@ class ConductorAPI(sysinv.openstack.common.rpc.proxy.RpcProxy):
|
|||||||
force_grub_update=force_grub_update))
|
force_grub_update=force_grub_update))
|
||||||
|
|
||||||
def imemory_update_by_ihost(self, context,
|
def imemory_update_by_ihost(self, context,
|
||||||
ihost_uuid, imemory_dict_array):
|
ihost_uuid, imemory_dict_array,
|
||||||
|
force_update=False):
|
||||||
"""Create or update memory for an ihost with the supplied data.
|
"""Create or update memory for an ihost with the supplied data.
|
||||||
|
|
||||||
This method allows records for memory for ihost to be created,
|
This method allows records for memory for ihost to be created,
|
||||||
@ -317,13 +318,15 @@ class ConductorAPI(sysinv.openstack.common.rpc.proxy.RpcProxy):
|
|||||||
:param context: an admin context
|
:param context: an admin context
|
||||||
:param ihost_uuid: ihost uuid unique id
|
:param ihost_uuid: ihost uuid unique id
|
||||||
:param imemory_dict_array: initial values for memory objects
|
:param imemory_dict_array: initial values for memory objects
|
||||||
|
:param force_update: force a memory update
|
||||||
:returns: pass or fail
|
:returns: pass or fail
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self.call(context,
|
return self.call(context,
|
||||||
self.make_msg('imemory_update_by_ihost',
|
self.make_msg('imemory_update_by_ihost',
|
||||||
ihost_uuid=ihost_uuid,
|
ihost_uuid=ihost_uuid,
|
||||||
imemory_dict_array=imemory_dict_array))
|
imemory_dict_array=imemory_dict_array,
|
||||||
|
force_update=force_update))
|
||||||
|
|
||||||
def idisk_update_by_ihost(self, context,
|
def idisk_update_by_ihost(self, context,
|
||||||
ihost_uuid, idisk_dict_array):
|
ihost_uuid, idisk_dict_array):
|
||||||
@ -1648,3 +1651,14 @@ class ConductorAPI(sysinv.openstack.common.rpc.proxy.RpcProxy):
|
|||||||
self.make_msg('update_kubernetes_label',
|
self.make_msg('update_kubernetes_label',
|
||||||
host_uuid=host_uuid,
|
host_uuid=host_uuid,
|
||||||
label_dict=label_dict))
|
label_dict=label_dict))
|
||||||
|
|
||||||
|
def update_host_memory(self, context, host_uuid):
|
||||||
|
"""Asynchronously, have a conductor update the host memory
|
||||||
|
|
||||||
|
:param context: request context.
|
||||||
|
:param host_uuid: duuid or id of the host.
|
||||||
|
"""
|
||||||
|
LOG.info("ConductorApi.update_host_memory: sending"
|
||||||
|
" host memory update request to conductor")
|
||||||
|
return self.cast(context, self.make_msg('update_host_memory',
|
||||||
|
host_uuid=host_uuid))
|
||||||
|
Loading…
Reference in New Issue
Block a user