Skip to content

Commit 4a65370

Browse files
Cleanup some code. (#249)
Signed-off-by: Samuel K. Gutierrez <[email protected]>
1 parent b916f2b commit 4a65370

8 files changed

+182
-189
lines changed

src/qvi-bbuff-rmi.h

+16-13
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
* c = qvi_hwloc_bitmap_s
2020
* d = qv_scope_create_hints_t
2121
* h = qvi_hwpool_s *
22-
* h = qvi_line_hwpool_t *
2322
* i = int
2423
* s = char *
2524
* s = std::string
@@ -552,7 +551,7 @@ qvi_bbuff_rmi_pack_item_impl(
552551
qvi_bbuff_t *buff,
553552
const qvi_hwpool_s *data
554553
) {
555-
return data->pack(buff);
554+
return data->packto(buff);
556555
}
557556

558557
/**
@@ -672,7 +671,7 @@ qvi_bbuff_rmi_unpack_item(
672671
size_t *bytes_written
673672
) {
674673
const int nw = asprintf(s, "%s", buffpos);
675-
if (nw == -1) {
674+
if (qvi_unlikely(nw == -1)) {
676675
*s = nullptr;
677676
*bytes_written = 0;
678677
return QV_ERR_OOR;
@@ -762,7 +761,8 @@ qvi_bbuff_rmi_unpack_item(
762761

763762
void **dbuff = data.first;
764763
*dbuff = calloc(*dsize, sizeof(byte_t));
765-
if (!*dbuff) {
764+
if (qvi_unlikely(!*dbuff)) {
765+
*bytes_written = 0;
766766
return QV_ERR_OOR;
767767
}
768768
memmove(*dbuff, buffpos, *dsize);
@@ -781,17 +781,17 @@ qvi_bbuff_rmi_unpack_item(
781781
size_t *bytes_written
782782
) {
783783
int rc = qvi_hwloc_bitmap_calloc(cpuset);
784-
if (rc != QV_SUCCESS) return rc;
784+
if (qvi_unlikely(rc != QV_SUCCESS)) return rc;
785785

786-
char *cpusets = (char *)buffpos;
786+
char *const cpusets = (char *)buffpos;
787787
// Protect against empty data.
788788
if (strcmp(QV_BUFF_RMI_NULL_CPUSET, cpusets) != 0) {
789789
rc = qvi_hwloc_bitmap_sscanf(*cpuset, cpusets);
790-
if (rc != QV_SUCCESS) goto out;
790+
if (qvi_unlikely(rc != QV_SUCCESS)) goto out;
791791
}
792792
*bytes_written = strlen(cpusets) + 1;
793793
out:
794-
if (rc != QV_SUCCESS) {
794+
if (qvi_unlikely(rc != QV_SUCCESS)) {
795795
qvi_hwloc_bitmap_delete(cpuset);
796796
}
797797
return rc;
@@ -810,8 +810,11 @@ qvi_bbuff_rmi_unpack_item(
810810
int rc = qvi_bbuff_rmi_unpack_item(
811811
&raw_cpuset, buffpos, bytes_written
812812
);
813-
if (rc != QV_SUCCESS) return rc;
814-
813+
if (qvi_unlikely(rc != QV_SUCCESS)) {
814+
*bytes_written = 0;
815+
return rc;
816+
}
817+
//
815818
rc = bitmap.set(raw_cpuset);
816819
qvi_hwloc_bitmap_delete(&raw_cpuset);
817820
return rc;
@@ -844,17 +847,17 @@ qvi_bbuff_rmi_unpack_item(
844847
int rc = qvi_bbuff_rmi_unpack_item(
845848
&cpu.hints, buffpos, &bw
846849
);
847-
if (rc != QV_SUCCESS) goto out;
850+
if (qvi_unlikely(rc != QV_SUCCESS)) goto out;
848851
total_bw += bw;
849852
buffpos += bw;
850853
// Unpack bitmap.
851854
rc = qvi_bbuff_rmi_unpack_item(
852855
cpu.cpuset, buffpos, &bw
853856
);
854-
if (rc != QV_SUCCESS) goto out;
857+
if (qvi_unlikely(rc != QV_SUCCESS)) goto out;
855858
total_bw += bw;
856859
out:
857-
if (rc != QV_SUCCESS) {
860+
if (qvi_unlikely(rc != QV_SUCCESS)) {
858861
total_bw = 0;
859862
}
860863
*bytes_written = total_bw;

src/qvi-hwpool.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ qvi_hwpool_s::release_devices(void)
256256
}
257257

258258
int
259-
qvi_hwpool_s::pack(
259+
qvi_hwpool_s::packto(
260260
qvi_bbuff_t *buff
261261
) const {
262262
// Pack the CPU.

src/qvi-hwpool.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,10 @@ struct qvi_hwpool_s {
155155
int
156156
release_devices(void);
157157
/**
158-
* Packs the instance into a bbuff.
158+
* Packs the instance into the provided buffer.
159159
*/
160160
int
161-
pack(
161+
packto(
162162
qvi_bbuff_t *buff
163163
) const;
164164
/**

src/qvi-mpi.cc

+12-12
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@ struct qvi_mpi_comm_s {
3939
int rc;
4040
if (dup) {
4141
rc = MPI_Comm_dup(comm, &mpi_comm);
42-
if (rc != MPI_SUCCESS) throw qvi_runtime_error();
42+
if (qvi_unlikely(rc != MPI_SUCCESS)) {
43+
throw qvi_runtime_error();
44+
}
4345
}
4446
else {
4547
mpi_comm = comm;
4648
}
4749
rc = MPI_Comm_size(mpi_comm, &size);
48-
if (rc != MPI_SUCCESS) throw qvi_runtime_error();
50+
if (qvi_unlikely(rc != MPI_SUCCESS)) throw qvi_runtime_error();
4951
rc = MPI_Comm_rank(mpi_comm, &rank);
50-
if (rc != MPI_SUCCESS) throw qvi_runtime_error();
52+
if (qvi_unlikely(rc != MPI_SUCCESS)) throw qvi_runtime_error();
5153
}
5254
/** Destructor. */
5355
~qvi_mpi_comm_s(void) = default;
@@ -97,7 +99,7 @@ struct qvi_mpi_s {
9799
// Marker used to differentiate between intrinsic and automatic IDs.
98100
if (given_id == QVI_MPI_GROUP_NULL) {
99101
const int rc = qvi_group_t::next_id(&gid);
100-
if (rc != QV_SUCCESS) return rc;
102+
if (qvi_unlikely(rc != QV_SUCCESS)) return rc;
101103
}
102104
group_tab.insert({gid, group});
103105
return QV_SUCCESS;
@@ -130,7 +132,7 @@ mpi_comm_to_new_node_comm(
130132
comm, MPI_COMM_TYPE_SHARED,
131133
0, MPI_INFO_NULL, node_comm
132134
);
133-
if (rc != MPI_SUCCESS) {
135+
if (qvi_unlikely(rc != MPI_SUCCESS)) {
134136
qvi_log_error("MPI_Comm_split_type(MPI_COMM_TYPE_SHARED) failed");
135137
*node_comm = MPI_COMM_NULL;
136138
return QV_ERR_MPI;
@@ -156,7 +158,7 @@ qvi_mpi_group_comm_dup(
156158
MPI_Comm *comm
157159
) {
158160
const int rc = MPI_Comm_dup(group->qvcomm.mpi_comm, comm);
159-
if (rc != MPI_SUCCESS) return QV_ERR_MPI;
161+
if (qvi_unlikely(rc != MPI_SUCCESS)) return QV_ERR_MPI;
160162
return QV_SUCCESS;
161163
}
162164

@@ -171,7 +173,7 @@ create_intrinsic_comms(
171173
// Create node communicator.
172174
MPI_Comm node_comm = MPI_COMM_NULL;
173175
const int rc = mpi_comm_to_new_node_comm(comm, &node_comm);
174-
if (rc != QV_SUCCESS) return rc;
176+
if (qvi_unlikely(rc != QV_SUCCESS)) return rc;
175177
// MPI_COMM_SELF duplicate.
176178
mpi->self_comm = qvi_mpi_comm_s(MPI_COMM_SELF, true);
177179
// Node communicator, no duplicate necessary here: created above.
@@ -339,12 +341,12 @@ sleepy_node_barrier(
339341
) {
340342
MPI_Request request;
341343
int rc = MPI_Ibarrier(node_comm, &request);
342-
if (rc != MPI_SUCCESS) return QV_ERR_MPI;
344+
if (qvi_unlikely(rc != MPI_SUCCESS)) return QV_ERR_MPI;
343345

344346
int done = 0;
345347
do {
346348
rc = MPI_Test(&request, &done, MPI_STATUS_IGNORE);
347-
if (rc != MPI_SUCCESS) return QV_ERR_MPI;
349+
if (qvi_unlikely(rc != MPI_SUCCESS)) return QV_ERR_MPI;
348350
usleep(50000);
349351
} while (!done);
350352

@@ -411,9 +413,7 @@ qvi_mpi_group_gather_bbuffs(
411413
}
412414
// Root creates new buffers from data gathered from each participant.
413415
if (group_id == root) {
414-
// Zero initialize array of pointers to nullptr.
415-
bbuffs = new qvi_bbuff_t *[group_size]();
416-
// TODO(skg) Use dup.
416+
bbuffs = new qvi_bbuff_t *[group_size];
417417
byte_t *bytepos = allbytes.data();
418418
for (int i = 0; i < group_size; ++i) {
419419
rc = qvi_bbuff_new(&bbuffs[i]);

0 commit comments

Comments
 (0)