Xiaolei Shi has posted comments on this change.

Change subject: core: Numa engine/vdsm integration patch
......................................................................


Patch Set 7:

(12 comments)

http://gerrit.ovirt.org/#/c/27083/7/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java:

Line 85:     private EngineLock monitoringLock;
Line 86: 
Line 87:     private final List<VdsNumaNode> saveNodeList = new ArrayList<>();
Line 88:     private final List<VdsNumaNode> updateNodeList = new ArrayList<>();
Line 89:     private final List<Guid> removeNodeList = new ArrayList<>();
> 1. those fields are used only in updateNumaData, please make them local var
Done
Line 90:     public Object getLockObj() {
Line 91:         return _lockObj;
Line 92:     }
Line 93: 


Line 391:      *
Line 392:      * @param vds
Line 393:      */
Line 394:     public void updateNumaData(VDS vds) {
Line 395:         List<VdsNumaNode> vdsNumaNodes = vds.getNumaNodeList();
> please inline vdsNumaNodes field
Done
Line 396:         List<VdsNumaNode> dbVdsNumaNodes = DbFacade.getInstance()
Line 397:                 
.getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vds.getId());
Line 398:         for (VdsNumaNode node : vdsNumaNodes) {
Line 399:             VdsNumaNode searchNode = 
getVdsNumaNodeByIndex(dbVdsNumaNodes, node.getIndex());


Line 411:             removeNodeList.add(node.getId());
Line 412:         }
Line 413:         //need use _vds to be invoked in the below internal class
Line 414:         VDS backup = _vds;
Line 415:         _vds = vds;
> I don't understand why we need this backup+restore thing, you just need acc
Done
Line 416:         //The database operation should be in one transaction
Line 417:         
TransactionSupport.executeInScope(TransactionScopeOption.Required,
Line 418:                 new TransactionMethod<Void>() {
Line 419:                     @Override


http://gerrit.ovirt.org/#/c/27083/7/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java:

Line 110:     private final List<Guid> _vmsMovedToDown = new ArrayList<>();
Line 111:     private final List<Guid> _vmsToRemoveFromAsync = new 
ArrayList<>();
Line 112:     private final List<Guid> _succededToRunVms = new ArrayList<>();
Line 113:     private final List<CpuStatistics> cpuStatisticsToSave = new 
ArrayList<>();
Line 114:     private final List<VdsNumaNode> vdsNumaNodesToSave = new 
ArrayList<>();
> please use local variables instead
Done
Line 115:     private static final Map<Guid, Integer> 
vmsWithBalloonDriverProblem = new HashMap<>();
Line 116:     private static final Map<Guid, Integer> 
vmsWithUncontrolledBalloon = new HashMap<>();
Line 117:     private final List<VmStatic> _externalVmsToAdd = new 
ArrayList<>();
Line 118:     private boolean _saveVdsDynamic;


Line 275:                     for (CpuStatistics cpuStat : dbCpuStats) {
Line 276:                         cpuStatsMap.put(cpuStat.getCpuId(), cpuStat);
Line 277:                     }
Line 278:                     for (CpuStatistics cpuStat : cpuStatisticsToSave) 
{
Line 279:                         if 
(!cpuStatsMap.containsKey(cpuStat.getCpuId())) {
> you don't really need a map, you don't use the mapping since you never get 
Done
Line 280:                             needRemoveAndSave = true;
Line 281:                             break;
Line 282:                         }
Line 283:                     }


http://gerrit.ovirt.org/#/c/27083/7/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java:

Line 772:         }
Line 773:         vds.getNumaNodeList().clear();
Line 774:         vds.getNumaNodeList().addAll(vdsNumaNodes);
Line 775:         vds.getStatisticsData().getCpuCoreStatistics().clear();
Line 776:         
vds.getStatisticsData().getCpuCoreStatistics().addAll(cpuStatsData);
> this method is too long: can you please extract #726-#733 to separate metho
Done
Line 777:     }
Line 778: 
Line 779:     /**
Line 780:      * Update {@link VDS#setLocalDisksUsage(Map)} with map of paths 
usage extracted from the returned returned value. The


Line 1569:             }
Line 1570: 
Line 1571:             vds.getDynamicData().setNumaNodeList(newNumaNodeList);
Line 1572:             if (newNumaNodeList.size() > 1) {
Line 1573:                 vds.setNumaSupport(true);
> can we replace it with one line: vds.setNumaSupport(newNumaNodeList.size() 
Done
Line 1574:             }
Line 1575:         }
Line 1576: 
Line 1577:     }


Line 1575:         }
Line 1576: 
Line 1577:     }
Line 1578: 
Line 1579:     private static VdsNumaNode 
getVdsNumaNodeByIndex(List<VdsNumaNode> numaNodes, int index) {
> looks familiar :) please put it in VdsHandler class or other Utils class, a
Done
Line 1580:         for (VdsNumaNode numaNode : numaNodes) {
Line 1581:             if (index == numaNode.getIndex()) {
Line 1582:                 return numaNode;
Line 1583:             }


http://gerrit.ovirt.org/#/c/27083/7/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java:

Line 225:         for (VdsNumaNode node : vdsNodes) {
Line 226:             vdsNumaNodeCpus.put(node.getIndex(), node.getCpuIds());
Line 227:         }
Line 228:         log.error(vdsNumaNodeCpus.toString());
Line 229:         List<Integer> pinnedNodeIndexList = null;
> please remove this declaration and declare it in #231 (and remove the List 
Done
Line 230:         for (VmNumaNode node : vmNodes) {
Line 231:             pinnedNodeIndexList = 
getPinnedNodeIndexList(node.getVdsNumaNodeList());
Line 232:             if (!pinnedNodeIndexList.isEmpty()) {
Line 233:                 Set <Integer> totalPinnedVdsCpus = new 
LinkedHashSet<>();


Line 263:                 nodeIndexes.add(item.getIndex());
Line 264:             }
Line 265:             return nodeIndexes;
Line 266:         }
Line 267:         return new ArrayList<Integer>();
> classic place to use Collections.emptyList()
Done
Line 268:     }
Line 269: 
Line 270:     private List<Integer> getPinnedNodeIndexList(List<Pair<Guid, 
Pair<Boolean, Integer>>> nodeList) {
Line 271:         if (!nodeList.isEmpty()) {


Line 269: 
Line 270:     private List<Integer> getPinnedNodeIndexList(List<Pair<Guid, 
Pair<Boolean, Integer>>> nodeList) {
Line 271:         if (!nodeList.isEmpty()) {
Line 272:             List<Integer> nodeIndexes = new 
ArrayList<>(nodeList.size());
Line 273:             for (Pair<Guid, Pair<Boolean, Integer>> item : nodeList) {
> how about to iterate the values so it will be a bit simpler code?
Done
Line 274:                 if (item.getSecond().getFirst()) {
Line 275:                     nodeIndexes.add(item.getSecond().getSecond());
Line 276:                 }
Line 277:             }


Line 276:                 }
Line 277:             }
Line 278:             return nodeIndexes;
Line 279:         }
Line 280:         return new ArrayList<Integer>();
> classic place to use Collections.emptyList()
Done
Line 281:     }
Line 282: 
Line 283:     protected void buildVmNetworkCluster() {
Line 284:         // set Display network


-- 
To view, visit http://gerrit.ovirt.org/27083
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I050bc9d80a90ac73b5642ccd7630dd352eba236e
Gerrit-PatchSet: 7
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Xiaolei Shi <xiao-lei....@hp.com>
Gerrit-Reviewer: Arik Hadas <aha...@redhat.com>
Gerrit-Reviewer: Gilad Chaplik <gchap...@redhat.com>
Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com>
Gerrit-Reviewer: Roy Golan <rgo...@redhat.com>
Gerrit-Reviewer: Xiaolei Shi <xiao-lei....@hp.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to