You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 5, 2023. It is now read-only.
parameters: path to the file being rewritten, drop_connection
/* defined log structure */
struct log {
char signature[LOG_SIGNATURE_SIZE];
uint8_t lock; /* 1 - client writes, 0 - log free */
/* last written data (aligned to RPMA_ATOMIC_WRITE_ALIGNMENT) */
uint64_t used;
char data[LOG_DATA_SIZE];
};
function reconnect()
{
disconnect
establish a new connection (several attempts may be needed, like FIO engines
https://github.com/pmem/fio/blob/aof/engines/librpma_fio.c#L209 )
rpma_read(used)
continue writing from reading used
}
rpma_read(lock)
if (lock == 1) {
fprintf(stderr, “busy”);
disconnecting and closing the program
}
rpma_write_atomic (lock=1)
… (example 07)
if (drop_connection) { /* user specified parameter */
reconnect()
}
ret = rpma_conn_completion_get();
if (ret && ret != RPMA_E_NO_COMPLETION)
goto err;
if (ret == RPMA_E_NO_COMPLETION) {
rpma_conn_completion_wait()
rpma_conn_completion_get()
}
if (cmpl.op_status == IBV_WC_RETRY_EXC_ERR) {
ret = rpma_conn_next_event()
if (!ret && conn_event != RPMA_CONN_CLOSED) {
fprintf(stderr,
"rpma_conn_next_event returned an unexpected event: %s\n",
rpma_utils_conn_event_2str(conn_event));
disconnecting and closing the program
}
reconnect()
}
rpma_write_atomic (lock = 0)
rpma_flush
disconnect
SERVER
Perform all steps of Example 7 with changes: parameters: drop_connection
after accept connection:
if (drop_connection) {/* user specified parameter */
sleep (5);
disconnect
if (lock == 1) {
create new connection
}
}
do {
wait for RPMA_CONN_CLOSED
disconnect
if (lock == 1) {
create new connection
}
} while (lock != 0)
print saved data
The text was updated successfully, but these errors were encountered:
Note: This example runs properly only on HW.
CLIENT
Perform all steps of Example 7 with changes:
parameters: path to the file being rewritten, drop_connection
SERVER
Perform all steps of Example 7 with changes:
parameters: drop_connection
The text was updated successfully, but these errors were encountered: