Commit d16c8b3f authored by Geoff Simmons's avatar Geoff Simmons

consistently name the element "record" in the sources (not "line" or

"logline")
parent d0b3925e
......@@ -55,33 +55,33 @@
static const char *statename[3] = { "EMPTY", "OCCUPIED" };
static pthread_mutex_t freetx_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t freeline_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t freerec_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t freechunk_lock = PTHREAD_MUTEX_INITIALIZER;
static char *bufptr;
static txhead_t freetxhead;
static linehead_t freelinehead;
static rechead_t freerechead;
static chunkhead_t freechunkhead;
static void
data_Cleanup(void)
{
free(txn);
free(lines);
free(records);
free(chunks);
free(bufptr);
AZ(pthread_mutex_destroy(&freetx_lock));
AZ(pthread_mutex_destroy(&freeline_lock));
AZ(pthread_mutex_destroy(&freerec_lock));
AZ(pthread_mutex_destroy(&freechunk_lock));
}
void
DATA_Clear_Tx(tx_t * const tx, txhead_t * const freetx,
linehead_t * const freerec, chunkhead_t * const freechunk,
rechead_t * const freerec, chunkhead_t * const freechunk,
unsigned * restrict const nfree_tx,
unsigned * restrict const nfree_rec,
unsigned * restrict const nfree_chunk)
{
logline_t *rec;
rec_t *rec;
chunk_t *chunk;
unsigned nchunk = 0, nrec = 0;
......@@ -93,8 +93,8 @@ DATA_Clear_Tx(tx_t * const tx, txhead_t * const freetx,
tx->type = VSL_t_unknown;
tx->t = 0.;
while ((rec = VSTAILQ_FIRST(&tx->lines)) != NULL) {
CHECK_OBJ(rec, LOGLINE_MAGIC);
while ((rec = VSTAILQ_FIRST(&tx->recs)) != NULL) {
CHECK_OBJ(rec, RECORD_MAGIC);
rec->occupied = 0;
rec->tag = SLT__Bogus;
rec->len = 0;
......@@ -107,11 +107,11 @@ DATA_Clear_Tx(tx_t * const tx, txhead_t * const freetx,
nchunk++;
}
assert(VSTAILQ_EMPTY(&rec->chunks));
VSTAILQ_REMOVE_HEAD(&tx->lines, linelist);
VSTAILQ_REMOVE_HEAD(&tx->recs, reclist);
VSTAILQ_INSERT_HEAD(freerec, rec, freelist);
nrec++;
}
assert(VSTAILQ_EMPTY(&tx->lines));
assert(VSTAILQ_EMPTY(&tx->recs));
VSTAILQ_INSERT_HEAD(freetx, tx, freelist);
*nfree_tx += 1;
*nfree_rec += nrec;
......@@ -122,10 +122,10 @@ DATA_Clear_Tx(tx_t * const tx, txhead_t * const freetx,
int
DATA_Init(void)
{
int bufidx = 0, chunks_per_rec, lines_per_tx = FMT_Estimate_RecsPerTx();
int bufidx = 0, chunks_per_rec, recs_per_tx = FMT_Estimate_RecsPerTx();
LOG_Log(LOG_DEBUG, "Estimated %d records per transaction", lines_per_tx);
nrecords = config.max_data * lines_per_tx;
LOG_Log(LOG_DEBUG, "Estimated %d records per transaction", recs_per_tx);
nrecords = config.max_data * recs_per_tx;
AN(config.chunk_size);
chunks_per_rec
= (config.max_reclen + config.chunk_size - 1) / config.chunk_size;
......@@ -154,21 +154,21 @@ DATA_Init(void)
assert(bufidx == nchunks);
LOG_Log(LOG_DEBUG, "Allocating table for %d records (%d bytes)", nrecords,
nrecords * sizeof(logline_t));
lines = (logline_t *) calloc(nrecords, sizeof(logline_t));
if (lines == NULL) {
nrecords * sizeof(rec_t));
records = (rec_t *) calloc(nrecords, sizeof(rec_t));
if (records == NULL) {
free(bufptr);
free(chunks);
return errno;
}
VSTAILQ_INIT(&freelinehead);
VSTAILQ_INIT(&freerechead);
for (int i = 0; i < nrecords; i++) {
lines[i].magic = LOGLINE_MAGIC;
lines[i].occupied = 0;
lines[i].tag = SLT__Bogus;
lines[i].len = 0;
VSTAILQ_INIT(&lines[i].chunks);
VSTAILQ_INSERT_TAIL(&freelinehead, &lines[i], freelist);
records[i].magic = RECORD_MAGIC;
records[i].occupied = 0;
records[i].tag = SLT__Bogus;
records[i].len = 0;
VSTAILQ_INIT(&records[i].chunks);
VSTAILQ_INSERT_TAIL(&freerechead, &records[i], freelist);
}
LOG_Log(LOG_DEBUG, "Allocating table for %d transactions (%d bytes)",
......@@ -177,7 +177,7 @@ DATA_Init(void)
if (txn == NULL) {
free(bufptr);
free(chunks);
free(lines);
free(records);
return errno;
}
VSTAILQ_INIT(&freetxhead);
......@@ -188,13 +188,13 @@ DATA_Init(void)
txn[i].pvxid = -1;
txn[i].type = VSL_t_unknown;
txn[i].t = 0.;
VSTAILQ_INIT(&txn[i].lines);
VSTAILQ_INIT(&txn[i].recs);
VSTAILQ_INSERT_TAIL(&freetxhead, &txn[i], freelist);
}
tx_occ = rec_occ = chunk_occ = tx_occ_hi = rec_occ_hi = chunk_occ_hi = 0;
global_nfree_tx = config.max_data;
global_nfree_line = nrecords;
global_nfree_rec = nrecords;
global_nfree_chunk = nchunks;
atexit(data_Cleanup);
......@@ -220,7 +220,7 @@ DATA_Take_Free##type(struct type##head_s *dst) \
}
DATA_Take_Free(tx)
DATA_Take_Free(line)
DATA_Take_Free(rec)
DATA_Take_Free(chunk)
/*
......@@ -238,7 +238,7 @@ DATA_Return_Free##type(struct type##head_s *returned, unsigned nreturned) \
}
DATA_Return_Free(tx)
DATA_Return_Free(line)
DATA_Return_Free(rec)
DATA_Return_Free(chunk)
void
......@@ -253,7 +253,7 @@ DATA_Dump(void)
for (int i = 0; i < config.max_data; i++) {
tx_t *tx;
logline_t *rec;
rec_t *rec;
if (txn[i].magic != TX_MAGIC) {
LOG_Log(LOG_ERR,
......@@ -273,13 +273,13 @@ DATA_Dump(void)
i, tx->vxid, tx->pvxid, statename[tx->occupied],
C(tx->type) ? 'c' : B(tx->type) ? 'b' : '-');
VSTAILQ_FOREACH(rec, &tx->lines, linelist) {
VSTAILQ_FOREACH(rec, &tx->recs, reclist) {
if (rec == NULL)
continue;
if (rec->magic != LOGLINE_MAGIC) {
if (rec->magic != RECORD_MAGIC) {
LOG_Log(LOG_ERR,
"Invalid record at tx %d, magic = 0x%08x, expected 0x%08x",
i, rec->magic, LOGLINE_MAGIC);
i, rec->magic, RECORD_MAGIC);
continue;
}
VSB_printf(data, "%s ", VSL_tags[rec->tag]);
......
......@@ -77,9 +77,9 @@ static unsigned includes, include_rx;
static char **incl_arg = NULL;
char *
get_payload(const logline_t *rec)
get_payload(const rec_t *rec)
{
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
CHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
assert(OCCUPIED(rec));
if (!rec->len)
......@@ -110,14 +110,14 @@ get_payload(const logline_t *rec)
/*
* Return the *last* record in tx that matches the tag
*/
logline_t *
rec_t *
get_tag(const tx_t *tx, enum VSL_tag_e tag)
{
logline_t *rec, *tagrec = NULL;
rec_t *rec, *tagrec = NULL;
CHECK_OBJ_NOTNULL(tx, TX_MAGIC);
VSTAILQ_FOREACH(rec, &tx->lines, linelist) {
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
VSTAILQ_FOREACH(rec, &tx->recs, reclist) {
CHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
assert(OCCUPIED(rec));
if (rec->tag == tag)
tagrec = rec;
......@@ -132,14 +132,14 @@ get_tag(const tx_t *tx, enum VSL_tag_e tag)
char *
get_hdr(const tx_t *tx, enum VSL_tag_e tag, const char *hdr)
{
logline_t *rec;
rec_t *rec;
char *hdr_payload = NULL;
CHECK_OBJ_NOTNULL(tx, TX_MAGIC);
VSTAILQ_FOREACH(rec, &tx->lines, linelist) {
VSTAILQ_FOREACH(rec, &tx->recs, reclist) {
char *c;
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
CHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
assert(OCCUPIED(rec));
if (rec->tag != tag)
continue;
......@@ -185,7 +185,7 @@ get_fld(char *str, int n, size_t *len)
}
char *
get_rec_fld(const logline_t *rec, int n, size_t *len)
get_rec_fld(const rec_t *rec, int n, size_t *len)
{
return get_fld(get_payload(rec), n, len);
}
......@@ -194,7 +194,7 @@ static inline void
format_slt(const tx_t *tx, enum VSL_tag_e tag, char *hdr, int fld, char **s,
size_t *len)
{
logline_t *rec;
rec_t *rec;
if (hdr == NULL) {
rec = get_tag(tx, tag);
......@@ -221,7 +221,7 @@ format_slt(const tx_t *tx, enum VSL_tag_e tag, char *hdr, int fld, char **s,
static inline void
format_b(const tx_t *tx, enum VSL_tag_e tag, char **s, size_t *len)
{
logline_t *rec = get_tag(tx, tag);
rec_t *rec = get_tag(tx, tag);
if (rec != NULL)
*s = get_rec_fld(rec, 4, len);
}
......@@ -292,7 +292,7 @@ format_H_backend(const tx_t *tx, const arg_t *args, char **s, size_t *len)
static inline void
format_h(const tx_t *tx, enum VSL_tag_e tag, int fld_nr, char **s, size_t *len)
{
logline_t *rec = get_tag(tx, tag);
rec_t *rec = get_tag(tx, tag);
if (rec != NULL)
*s = get_rec_fld(rec, fld_nr, len);
}
......@@ -317,7 +317,7 @@ format_IO_client(const tx_t *tx, int req_fld, int pipe_fld, char **s,
{
int field;
logline_t *rec = get_tag(tx, SLT_ReqAcct);
rec_t *rec = get_tag(tx, SLT_ReqAcct);
if (rec != NULL)
field = req_fld;
else {
......@@ -331,7 +331,7 @@ format_IO_client(const tx_t *tx, int req_fld, int pipe_fld, char **s,
static inline void
format_IO_backend(const tx_t *tx, int field, char **s, size_t *len)
{
logline_t *rec = get_tag(tx, SLT_BereqAcct);
rec_t *rec = get_tag(tx, SLT_BereqAcct);
if (rec != NULL)
*s = get_rec_fld(rec, field, len);
}
......@@ -382,7 +382,7 @@ static inline void
format_q(const tx_t *tx, enum VSL_tag_e tag, char **s, size_t *len)
{
char *qs = NULL;
logline_t *rec = get_tag(tx, tag);
rec_t *rec = get_tag(tx, tag);
if (rec == NULL)
return;
char *p = get_payload(rec);
......@@ -416,7 +416,7 @@ format_r(const tx_t *tx, enum VSL_tag_e mtag, enum VSL_tag_e htag,
char *str;
VSB_clear(scratch);
logline_t *rec = get_tag(tx, mtag);
rec_t *rec = get_tag(tx, mtag);
if (rec != NULL)
VSB_cpy(scratch, get_payload(rec));
else
......@@ -538,7 +538,7 @@ format_U(const tx_t *tx, enum VSL_tag_e tag, char **s, size_t *len)
{
char *qs = NULL;
logline_t *rec = get_tag(tx, tag);
rec_t *rec = get_tag(tx, tag);
if (rec == NULL)
return;
*s = get_payload(rec);
......@@ -669,11 +669,11 @@ format_Xttfb_backend(const tx_t *tx, const arg_t *args, char **s, size_t *len)
void
format_VCL_disp(const tx_t *tx, const arg_t *args, char **s, size_t *len)
{
logline_t *rec;
rec_t *rec;
*s = dash;
VSTAILQ_FOREACH(rec, &tx->lines, linelist) {
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
VSTAILQ_FOREACH(rec, &tx->recs, reclist) {
CHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
if (rec->tag != SLT_VCL_call && rec->tag != SLT_VCL_return)
continue;
char *data = get_payload(rec);
......
......@@ -40,11 +40,11 @@ typedef struct arg_t {
typedef void formatter_f(const tx_t *tx, const arg_t *args, char **s,
size_t *len);
char *get_payload(const logline_t *rec);
logline_t *get_tag(const tx_t *tx, enum VSL_tag_e tag);
char *get_payload(const rec_t *rec);
rec_t *get_tag(const tx_t *tx, enum VSL_tag_e tag);
char *get_hdr(const tx_t *tx, enum VSL_tag_e tag, const char *hdr);
char *get_fld(char *str, int n, size_t *len);
char *get_rec_fld(const logline_t *rec, int n, size_t *len);
char *get_rec_fld(const rec_t *rec, int n, size_t *len);
formatter_f format_b_client;
formatter_f format_b_backend;
......
......@@ -52,7 +52,7 @@ log_output(void)
"global_free_chunk=%u",
config.max_data, nrecords, nchunks, tx_occ, rec_occ, chunk_occ,
tx_occ_hi, rec_occ_hi, chunk_occ_hi, global_nfree_tx,
global_nfree_line, global_nfree_chunk);
global_nfree_rec, global_nfree_chunk);
RDR_Stats();
......
......@@ -23,7 +23,7 @@ fi
# predictable from one run to the next.
CKSUM=$( sed -e 's/\(initializing\) \(.*\)/\1/' $LOG | egrep -v 'Writer: returned|Reader: took|^DEBUG: Allocating' | cksum )
if [ "$CKSUM" != '1056349365 69263269' ]; then
if [ "$CKSUM" != '3182678025 71888971' ]; then
echo "ERROR: Regression test varnishevent log incorrect cksum: $CKSUM"
exit 1
fi
......
......@@ -38,7 +38,7 @@
int tests_run = 0;
static txhead_t local_freetx = VSTAILQ_HEAD_INITIALIZER(local_freetx);
static linehead_t local_freeline = VSTAILQ_HEAD_INITIALIZER(local_freeline);
static rechead_t local_freerec = VSTAILQ_HEAD_INITIALIZER(local_freerec);
static chunkhead_t local_freechunk = VSTAILQ_HEAD_INITIALIZER(local_freechunk);
/* So that we don't have to link monitor.o, and hence varnishevent.o */
......@@ -74,22 +74,22 @@ static char
MASSERT(txn[i].pvxid == -1);
MASSERT(txn[i].type == VSL_t_unknown);
MAZ(txn[i].t);
MASSERT(VSTAILQ_EMPTY(&txn[i].lines));
MASSERT(VSTAILQ_EMPTY(&txn[i].recs));
if (VSTAILQ_NEXT(&txn[i], freelist) != NULL)
tx_free++;
}
MASSERT(global_nfree_tx == config.max_data);
for (int i = 0; i < nrecords; i++) {
MCHECK_OBJ(&lines[i], LOGLINE_MAGIC);
MASSERT(!OCCUPIED(&lines[i]));
MASSERT(lines[i].tag == SLT__Bogus);
MASSERT(lines[i].len == 0);
MASSERT(VSTAILQ_EMPTY(&lines[i].chunks));
if (VSTAILQ_NEXT(&lines[i], freelist) != NULL)
MCHECK_OBJ(&records[i], RECORD_MAGIC);
MASSERT(!OCCUPIED(&records[i]));
MASSERT(records[i].tag == SLT__Bogus);
MASSERT(records[i].len == 0);
MASSERT(VSTAILQ_EMPTY(&records[i].chunks));
if (VSTAILQ_NEXT(&records[i], freelist) != NULL)
rec_free++;
}
MASSERT(global_nfree_line == nrecords);
MASSERT(global_nfree_rec == nrecords);
for (int i = 0; i < nchunks; i++) {
MCHECK_OBJ(&chunks[i], CHUNK_MAGIC);
......@@ -133,17 +133,17 @@ static const char
*test_data_take_rec(void)
{
unsigned nfree, cfree = 0;
logline_t *rec;
rec_t *rec;
printf("... testing record freelist take\n");
nfree = DATA_Take_Freeline(&local_freeline);
nfree = DATA_Take_Freerec(&local_freerec);
MAZ(global_nfree_line);
MAZ(global_nfree_rec);
MASSERT(nfree == nrecords);
MASSERT(!VSTAILQ_EMPTY(&local_freeline));
VSTAILQ_FOREACH(rec, &local_freeline, freelist) {
MCHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
MASSERT(!VSTAILQ_EMPTY(&local_freerec));
VSTAILQ_FOREACH(rec, &local_freerec, freelist) {
MCHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
cfree++;
}
MASSERT(nfree == cfree);
......@@ -191,10 +191,10 @@ static const char
{
printf("... testing record freelist return\n");
DATA_Return_Freeline(&local_freeline, nrecords);
DATA_Return_Freerec(&local_freerec, nrecords);
MASSERT(VSTAILQ_EMPTY(&local_freeline));
MASSERT(global_nfree_line == nrecords);
MASSERT(VSTAILQ_EMPTY(&local_freerec));
MASSERT(global_nfree_rec == nrecords);
return NULL;
}
......@@ -262,7 +262,7 @@ static const char
#define NRECS 10
#define CHUNKS_PER_REC 3
tx_t tx;
logline_t r[NRECS], *rec;
rec_t r[NRECS], *rec;
chunk_t c[NRECS * CHUNKS_PER_REC], *chunk;
int n = 0;
unsigned nfree_tx = 4711, nfree_recs = 815, nfree_chunks = 1147;
......@@ -270,14 +270,14 @@ static const char
printf("... testing transaction clear\n");
VSTAILQ_INIT(&local_freetx);
VSTAILQ_INIT(&local_freeline);
VSTAILQ_INIT(&local_freerec);
VSTAILQ_INIT(&local_freechunk);
tx.magic = TX_MAGIC;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
for (int i = 0; i < NRECS; i++) {
VSTAILQ_INSERT_TAIL(&tx.lines, &r[i], linelist);
r[i].magic = LOGLINE_MAGIC;
VSTAILQ_INSERT_TAIL(&tx.recs, &r[i], reclist);
r[i].magic = RECORD_MAGIC;
VSTAILQ_INIT(&r[i].chunks);
for (int j = 0; j < CHUNKS_PER_REC; j++) {
chunk = &c[i*CHUNKS_PER_REC + j];
......@@ -287,7 +287,7 @@ static const char
}
}
DATA_Clear_Tx(&tx, &local_freetx, &local_freeline, &local_freechunk,
DATA_Clear_Tx(&tx, &local_freetx, &local_freerec, &local_freechunk,
&nfree_tx, &nfree_recs, &nfree_chunks);
MASSERT(nfree_tx == 4712);
......@@ -300,19 +300,19 @@ static const char
MASSERT(tx.pvxid == -1);
MASSERT(tx.type == VSL_t_unknown);
MAZ(tx.t);
MASSERT(VSTAILQ_EMPTY(&tx.lines));
MASSERT(VSTAILQ_EMPTY(&tx.recs));
MASSERT(!VSTAILQ_EMPTY(&local_freetx));
MASSERT(VSTAILQ_FIRST(&local_freetx) == &tx);
MAZ(VSTAILQ_NEXT(&tx, freelist));
MASSERT(!VSTAILQ_EMPTY(&local_freeline));
VSTAILQ_FOREACH(rec, &local_freeline, freelist) {
MCHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
MASSERT(!VSTAILQ_EMPTY(&local_freerec));
VSTAILQ_FOREACH(rec, &local_freerec, freelist) {
MCHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
MASSERT(!OCCUPIED(rec));
MASSERT(rec->tag == SLT__Bogus);
MAZ(rec->len);
MASSERT(VSTAILQ_EMPTY(&tx.lines));
MASSERT(VSTAILQ_EMPTY(&tx.recs));
n++;
}
MASSERT(n == NRECS);
......
......@@ -44,10 +44,10 @@
int tests_run = 0;
static void
add_rec_chunk(tx_t *tx, logline_t *rec, chunk_t *chunk)
add_rec_chunk(tx_t *tx, rec_t *rec, chunk_t *chunk)
{
VSTAILQ_INSERT_TAIL(&tx->lines, rec, linelist);
rec->magic = LOGLINE_MAGIC;
VSTAILQ_INSERT_TAIL(&tx->recs, rec, reclist);
rec->magic = RECORD_MAGIC;
rec->occupied = 1;
VSTAILQ_INIT(&rec->chunks);
VSTAILQ_INSERT_TAIL(&rec->chunks, chunk, chunklist);
......@@ -56,17 +56,17 @@ add_rec_chunk(tx_t *tx, logline_t *rec, chunk_t *chunk)
}
static void
init_tx_rec_chunk_arg(tx_t *tx, logline_t *rec, chunk_t *chunk, arg_t *args)
init_tx_rec_chunk_arg(tx_t *tx, rec_t *rec, chunk_t *chunk, arg_t *args)
{
tx->magic = TX_MAGIC;
VSTAILQ_INIT(&tx->lines);
VSTAILQ_INIT(&tx->recs);
add_rec_chunk(tx, rec, chunk);
args->name = NULL;
args->tag = SLT__Bogus;
}
static void
set_record_data(logline_t *rec, chunk_t *chunk, const char *data,
set_record_data(rec_t *rec, chunk_t *chunk, const char *data,
enum VSL_tag_e tag)
{
rec->len = strlen(data) + 1;
......@@ -77,7 +77,7 @@ set_record_data(logline_t *rec, chunk_t *chunk, const char *data,
}
static void
add_record_data(tx_t *tx, logline_t *rec, chunk_t *chunk, const char *data,
add_record_data(tx_t *tx, rec_t *rec, chunk_t *chunk, const char *data,
enum VSL_tag_e tag)
{
add_rec_chunk(tx, rec, chunk);
......@@ -103,14 +103,14 @@ static const char
static const char
*test_format_get_payload(void)
{
logline_t rec;
rec_t rec;
chunk_t chunk;
char *p;
printf("... testing get_payload()\n");
memset(&rec, 0, sizeof(logline_t));
rec.magic = LOGLINE_MAGIC;
memset(&rec, 0, sizeof(rec_t));
rec.magic = RECORD_MAGIC;
rec.occupied = 1;
VSTAILQ_INIT(&rec.chunks);
memset(&chunk, 0, sizeof(chunk_t));
......@@ -173,18 +173,18 @@ static const char
*test_format_get_tag(void)
{
tx_t tx;
logline_t recs[NRECORDS], *rec;
rec_t recs[NRECORDS], *rec;
printf("... testing get_tag()\n");
tx.magic = TX_MAGIC;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
for (int i = 0; i < NRECORDS; i++) {
memset(&recs[i], 0, sizeof(logline_t));
recs[i].magic = LOGLINE_MAGIC;
memset(&recs[i], 0, sizeof(rec_t));
recs[i].magic = RECORD_MAGIC;
recs[i].tag = SLT_ReqHeader;
recs[i].occupied = 1;
VSTAILQ_INSERT_TAIL(&tx.lines, &recs[i], linelist);
VSTAILQ_INSERT_TAIL(&tx.recs, &recs[i], reclist);
}
recs[NRECORDS / 2].tag = SLT_RespHeader;
recs[NRECORDS - 1].tag = SLT_RespHeader;
......@@ -198,7 +198,7 @@ static const char
MAZ(rec);
/* Empty line list */
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
rec = get_tag(&tx, SLT_ReqHeader);
MAZ(rec);
......@@ -209,21 +209,21 @@ static const char
*test_format_get_hdr(void)
{
tx_t tx;
logline_t recs[NRECORDS];
rec_t recs[NRECORDS];
chunk_t c[NRECORDS];
char *hdr;
printf("... testing get_hdr()\n");
tx.magic = TX_MAGIC;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
for (int i = 0; i < NRECORDS; i++) {
memset(&recs[i], 0, sizeof(logline_t));
recs[i].magic = LOGLINE_MAGIC;
memset(&recs[i], 0, sizeof(rec_t));
recs[i].magic = RECORD_MAGIC;
recs[i].tag = SLT_ReqHeader;
recs[i].len = strlen("Bar: baz");
recs[i].occupied = 1;
VSTAILQ_INSERT_TAIL(&tx.lines, &recs[i], linelist);
VSTAILQ_INSERT_TAIL(&tx.recs, &recs[i], reclist);
VSTAILQ_INIT(&recs[i].chunks);
memset(&c[i], 0, sizeof(chunk_t));
c[i].magic = CHUNK_MAGIC;
......@@ -259,7 +259,7 @@ static const char
MAZ(hdr);
/* Empty line list */
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
hdr = get_hdr(&tx, SLT_ReqHeader, "Foo");
MAZ(hdr);
......@@ -312,17 +312,17 @@ static const char
static const char
*test_format_get_rec_fld(void)
{
logline_t rec;
rec_t rec;
chunk_t chunk;
char *fld;
size_t len;
printf("... testing get_rec_fld()\n");
memset(&rec, 0, sizeof(logline_t));
memset(&rec, 0, sizeof(rec_t));
memset(&chunk, 0, sizeof(chunk_t));
rec.magic = LOGLINE_MAGIC;
rec.magic = RECORD_MAGIC;
VSTAILQ_INIT(&rec.chunks);
rec.occupied = 1;
chunk.magic = CHUNK_MAGIC;
......@@ -372,7 +372,7 @@ static const char
*test_format_H(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -402,7 +402,7 @@ static const char
*test_format_b(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -431,7 +431,7 @@ static const char
*test_format_D(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -461,7 +461,7 @@ static const char
*test_format_h(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -491,7 +491,7 @@ static const char
*test_format_I(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -525,7 +525,7 @@ static const char
*test_format_m(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -554,7 +554,7 @@ static const char
*test_format_O(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -587,7 +587,7 @@ static const char
*test_format_q(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -629,7 +629,7 @@ static const char
*test_format_r(void)
{
tx_t tx;
logline_t rec_method, rec_host, rec_url, rec_proto;
rec_t rec_method, rec_host, rec_url, rec_proto;
chunk_t chunk_method, chunk_host, chunk_url, chunk_proto;
arg_t args;
char *str;
......@@ -758,7 +758,7 @@ static const char
*test_format_s(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -787,7 +787,7 @@ static const char
*test_format_t(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str = NULL, strftime_s[BUFSIZ], fmt[] = "[%d/%b/%Y:%T %z]";
......@@ -818,7 +818,7 @@ static const char
*test_format_T(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -846,7 +846,7 @@ static const char
*test_format_U(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -884,7 +884,7 @@ static const char
*test_format_u(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -950,7 +950,7 @@ static const char
*test_format_Xi(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str, hdr[] = "Foo";
......@@ -979,7 +979,7 @@ static const char
*test_format_Xo(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str, hdr[] = "Baz";
......@@ -1008,7 +1008,7 @@ static const char
*test_format_Xt(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str = NULL, strftime_s[BUFSIZ];
......@@ -1064,7 +1064,7 @@ static const char
*test_format_Xttfb(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str;
......@@ -1094,7 +1094,7 @@ static const char
*test_format_VCL_disp(void)
{
tx_t tx;
logline_t *recs[NRECORDS];
rec_t *recs[NRECORDS];
chunk_t *c[NRECORDS];
arg_t args;
char *str, hitmiss[] = "m", handling[] = "n";
......@@ -1103,9 +1103,9 @@ static const char
printf("... testing format_VCL_disp()\n");
tx.magic = TX_MAGIC;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
for (int i = 0; i < NRECORDS; i++) {
recs[i] = (logline_t *) calloc(1, sizeof(logline_t));
recs[i] = (rec_t *) calloc(1, sizeof(rec_t));
MAN(recs[i]);
c[i] = (chunk_t *) calloc(1, sizeof(chunk_t));
MAN(c[i]);
......@@ -1216,7 +1216,7 @@ static const char
*test_format_VCL_Log(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str, hdr[] = "foo";
......@@ -1254,7 +1254,7 @@ static const char
*test_format_SLT(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
arg_t args;
char *str, *substr;
......@@ -1391,7 +1391,7 @@ static const char
char err[BUFSIZ], **i_args, *i_arg, strftime_s[BUFSIZ];
int status, recs_per_tx;
tx_t tx;
logline_t *recs[NRECS];
rec_t *recs[NRECS];
chunk_t *c[NRECS];
struct vsb *os;
struct tm *tm;
......@@ -1410,9 +1410,9 @@ static const char
tx.occupied = 1;
tx.vxid = 4711;
tx.pvxid = 1147;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INIT(&tx.recs);
for (int i = 0; i < NRECS; i++) {
recs[i] = (logline_t *) calloc(1, sizeof(logline_t));
recs[i] = (rec_t *) calloc(1, sizeof(rec_t));
MAN(recs[i]);
c[i] = (chunk_t *) calloc(1, sizeof(chunk_t));
MAN(c[i]);
......
......@@ -52,7 +52,7 @@ static char
*test_timeout(void)
{
tx_t tx;
logline_t rec;
rec_t rec;
chunk_t chunk;
printf("... testing write timeouts\n");
......@@ -74,9 +74,9 @@ static char
/* XXX: common helper functions with test_format */
tx.magic = TX_MAGIC;
VSTAILQ_INIT(&tx.lines);
VSTAILQ_INSERT_TAIL(&tx.lines, &rec, linelist);
rec.magic = LOGLINE_MAGIC;
VSTAILQ_INIT(&tx.recs);
VSTAILQ_INSERT_TAIL(&tx.recs, &rec, reclist);
rec.magic = RECORD_MAGIC;
VSTAILQ_INIT(&rec.chunks);
VSTAILQ_INSERT_TAIL(&rec.chunks, &chunk, chunklist);
chunk.magic = CHUNK_MAGIC;
......
......@@ -117,7 +117,7 @@ static chunkhead_t rdr_chunk_freelist
= VSTAILQ_HEAD_INITIALIZER(rdr_chunk_freelist);
static unsigned rdr_chunk_free = 0;
static linehead_t rdr_rec_freelist = VSTAILQ_HEAD_INITIALIZER(rdr_rec_freelist);
static rechead_t rdr_rec_freelist = VSTAILQ_HEAD_INITIALIZER(rdr_rec_freelist);
static unsigned rdr_rec_free = 0;
static txhead_t rdr_tx_freelist = VSTAILQ_HEAD_INITIALIZER(rdr_tx_freelist);
......@@ -177,14 +177,14 @@ static inline chunk_t
return (chunk);
}
static inline logline_t
static inline rec_t
*take_rec(void)
{
logline_t *rec;
rec_t *rec;
if (VSTAILQ_EMPTY(&rdr_rec_freelist)) {
signal_spscq_ready();
rdr_rec_free = DATA_Take_Freeline(&rdr_rec_freelist);
rdr_rec_free = DATA_Take_Freerec(&rdr_rec_freelist);
if (VSTAILQ_EMPTY(&rdr_rec_freelist)) {
rec_exhausted = 1;
return NULL;
......@@ -227,7 +227,7 @@ static inline void
take_free(void)
{
rdr_tx_free += DATA_Take_Freetx(&rdr_tx_freelist);
rdr_rec_free += DATA_Take_Freeline(&rdr_rec_freelist);
rdr_rec_free += DATA_Take_Freerec(&rdr_rec_freelist);
rdr_chunk_free += DATA_Take_Freechunk(&rdr_chunk_freelist);
}
......@@ -270,7 +270,7 @@ event(struct VSL_data *vsl, struct VSL_transaction * const pt[], void *priv)
}
CHECK_OBJ_NOTNULL(tx, TX_MAGIC);
assert(!OCCUPIED(tx));
assert(VSTAILQ_EMPTY(&tx->lines));
assert(VSTAILQ_EMPTY(&tx->recs));
tx->type = t->type;
tx->vxid = t->vxid;
tx->pvxid = t->vxid_parent;
......@@ -279,7 +279,7 @@ event(struct VSL_data *vsl, struct VSL_transaction * const pt[], void *priv)
while ((status = VSL_Next(t->c)) > 0) {
int len, n, nchunk;
logline_t *rec;
rec_t *rec;
chunk_t *chunk;
const char *p;
......@@ -288,9 +288,9 @@ event(struct VSL_data *vsl, struct VSL_transaction * const pt[], void *priv)
len = VSL_LEN(t->c->rec.ptr);
if (debug)
LOG_Log(LOG_DEBUG, "Line: [%u %s %.*s]", VSL_ID(t->c->rec.ptr),
VSL_tags[VSL_TAG(t->c->rec.ptr)], len,
VSL_CDATA(t->c->rec.ptr));
LOG_Log(LOG_DEBUG, "Record: [%u %s %.*s]",
VSL_ID(t->c->rec.ptr), VSL_tags[VSL_TAG(t->c->rec.ptr)],
len, VSL_CDATA(t->c->rec.ptr));
rec = take_rec();
if (rec == NULL) {
......@@ -301,7 +301,7 @@ event(struct VSL_data *vsl, struct VSL_transaction * const pt[], void *priv)
VSL_CDATA(t->c->rec.ptr));
continue;
}
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
CHECK_OBJ_NOTNULL(rec, RECORD_MAGIC);
assert(!OCCUPIED(rec));
assert(VSTAILQ_EMPTY(&rec->chunks));
......@@ -343,7 +343,7 @@ event(struct VSL_data *vsl, struct VSL_transaction * const pt[], void *priv)
total_chunks++;
}
rec->occupied = 1;
VSTAILQ_INSERT_TAIL(&tx->lines, rec, linelist);
VSTAILQ_INSERT_TAIL(&tx->recs, rec, reclist);
nrec++;
}
......@@ -763,7 +763,7 @@ main(int argc, char *argv[])
rdr_tx_free = DATA_Take_Freetx(&rdr_tx_freelist);
assert(!VSTAILQ_EMPTY(&rdr_tx_freelist));
assert(rdr_tx_free == config.max_data);
rdr_rec_free = DATA_Take_Freeline(&rdr_rec_freelist);
rdr_rec_free = DATA_Take_Freerec(&rdr_rec_freelist);
assert(!VSTAILQ_EMPTY(&rdr_rec_freelist));
rdr_chunk_free = DATA_Take_Freechunk(&rdr_chunk_freelist);
assert(!VSTAILQ_EMPTY(&rdr_chunk_freelist));
......
......@@ -85,28 +85,28 @@ typedef VSTAILQ_HEAD(chunkhead_s, chunk_t) chunkhead_t;
chunk_t *chunks;
unsigned nchunks;
typedef struct logline_t {
typedef struct rec_t {
unsigned magic;
#define LOGLINE_MAGIC 0xf427a374
#define RECORD_MAGIC 0xf427a374
unsigned len;
chunkhead_t chunks;
VSTAILQ_ENTRY(logline_t) freelist;
VSTAILQ_ENTRY(logline_t) linelist;
VSTAILQ_ENTRY(rec_t) freelist;
VSTAILQ_ENTRY(rec_t) reclist;
enum VSL_tag_e tag;
unsigned int occupied:1;
} logline_t;
} rec_t;
logline_t *lines;
rec_t *records;
unsigned nrecords;
typedef VSTAILQ_HEAD(linehead_s, logline_t) linehead_t;
typedef VSTAILQ_HEAD(rechead_s, rec_t) rechead_t;
typedef struct tx_t {
unsigned magic;
#define TX_MAGIC 0xff463e42
int32_t vxid;
int32_t pvxid;
linehead_t lines;
rechead_t recs;
VSTAILQ_ENTRY(tx_t) freelist;
VSTAILQ_ENTRY(tx_t) spscq;
double t;
......@@ -121,7 +121,7 @@ typedef VSTAILQ_HEAD(txhead_s, tx_t) txhead_t;
#define OCCUPIED(p) ((p)->occupied == 1)
unsigned tx_occ, rec_occ, chunk_occ, tx_occ_hi, rec_occ_hi, chunk_occ_hi,
global_nfree_tx, global_nfree_line, global_nfree_chunk;
global_nfree_tx, global_nfree_rec, global_nfree_chunk;
/* Writer (consumer) waits for this condition when the SPSC queue is empty.
Reader (producer) signals the condition after enqueue. */
......@@ -208,15 +208,15 @@ int LOG_Open(const char *progname);
/* data.c */
int DATA_Init(void);
void DATA_Clear_Tx(tx_t * const tx, txhead_t * const freetx,
linehead_t * const freerec, chunkhead_t * const freechunk,
rechead_t * const freerec, chunkhead_t * const freechunk,
unsigned * restrict const nfree_tx,
unsigned * restrict const nfree_rec,
unsigned * restrict const nfree_chunk);
unsigned DATA_Take_Freetx(struct txhead_s *dst);
unsigned DATA_Take_Freeline(struct linehead_s *dst);
unsigned DATA_Take_Freerec(struct rechead_s *dst);
unsigned DATA_Take_Freechunk(struct chunkhead_s *dst);
void DATA_Return_Freetx(struct txhead_s *returned, unsigned nreturned);
void DATA_Return_Freeline(struct linehead_s *returned, unsigned nreturned);
void DATA_Return_Freerec(struct rechead_s *returned, unsigned nreturned);
void DATA_Return_Freechunk(struct chunkhead_s *returned, unsigned nreturned);
void DATA_Dump(void);
......@@ -241,7 +241,7 @@ void SPSCQ_Shutdown(void);
typedef enum {
/* Transaction read */
STATS_DONE,
/* Log line written */
/* Transaction written */
STATS_WRITTEN,
} stats_update_t;
......
......@@ -68,7 +68,7 @@ static const char* statename[WRT_STATE_E_LIMIT] = {
/* Single writer thread, consumer for the SPSC queue. */
static pthread_t writer;
linehead_t wrt_freerecs;
rechead_t wrt_freerecs;
chunkhead_t wrt_freechunks;
static unsigned wrt_nfree_tx, wrt_nfree_recs, wrt_nfree_chunks;
......@@ -147,7 +147,7 @@ wrt_return_freelist(void)
assert(VSTAILQ_EMPTY(&wrt_freetx));
}
if (wrt_nfree_recs > 0) {
DATA_Return_Freeline(&wrt_freerecs, wrt_nfree_recs);
DATA_Return_Freerec(&wrt_freerecs, wrt_nfree_recs);
LOG_Log(LOG_DEBUG, "Writer: returned %u records to free list",
wrt_nfree_recs);
wrt_nfree_recs = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment