Skip to content

Commit

Permalink
core: save the new dynamic cpu pinning
Browse files Browse the repository at this point in the history
This patch introduce a new procedure in the DB. It will save the current
CPU pinning without saving the whole VmDynamic when migration ends.

Change-Id: I73d0b610a484c2cd98e09dd0b8557fa7276b98a0
Signed-off-by: Liran Rotenberg <lrotenbe@redhat.com>
  • Loading branch information
liranr23 authored and ahadas committed Mar 28, 2022
1 parent 4c19cea commit 4be116b
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -618,12 +618,11 @@ private MigrationPolicy findEffectiveConvergenceConfig(MigrationPolicy clusterMi
public void runningSucceded() {
try {
queryDowntime();
vmDynamicDao.clearMigratingToVds(getVmId());
setDedicatedCpus(getDestinationVdsManager());
vmDynamicDao.clearMigratingToVdsAndSetDynamicCpuPinning(getVmId(), getVm().getCurrentCpuPinning());
updateVmAfterMigrationToDifferentCluster();
plugPassthroughNics();
initParametersForExternalNetworks(destinationVds, true);
setDedicatedCpus(getDestinationVdsManager());
vmDynamicDao.update(getVm().getDynamicData());
} finally {
super.runningSucceded();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ public interface VmDynamicDao extends GenericDao<VmDynamic, Guid>, StatusAwareDa

void clearMigratingToVds(Guid id);

void clearMigratingToVdsAndSetDynamicCpuPinning(Guid id, String cpuPinning);


/**
* Update vm dynamics ovirt_guest_agent_status field
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,15 @@ public void clearMigratingToVds(Guid id) {
getCallsHandler().executeModification("ClearMigratingToVds", parameterSource);
}

@Override
public void clearMigratingToVdsAndSetDynamicCpuPinning(Guid id, String currentCpuPinning) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("vm_guid", id)
.addValue("current_cpu_pinning", currentCpuPinning);

getCallsHandler().executeModification("ClearMigratingToVdsAndSetDynamicCpuPinning", parameterSource);
}

@Override
public boolean updateConsoleUserWithOptimisticLocking(VmDynamic vm) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
Expand Down
10 changes: 10 additions & 0 deletions packaging/dbscripts/vms_sp.sql
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,16 @@ BEGIN
END;$PROCEDURE$
LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION ClearMigratingToVdsAndSetDynamicCpuPinning (v_vm_guid UUID, v_current_cpu_pinning VARCHAR(4000))
RETURNS VOID AS $PROCEDURE$
BEGIN
UPDATE vm_dynamic
SET migrating_to_vds = NULL,
current_cpu_pinning = v_current_cpu_pinning
WHERE vm_guid = v_vm_guid;
END;$PROCEDURE$
LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION DeleteVmDynamic (v_vm_guid UUID)
RETURNS VOID AS $PROCEDURE$
BEGIN
Expand Down

0 comments on commit 4be116b

Please sign in to comment.