/* Unlocked. */
dns_db_t common;
/* Locks the data in this struct */
- isc_rwlock_t lock;
+ __attribute__((aligned(ISC_OS_CACHELINE_SIZE))) isc_rwlock_t lock;
/*
* NOTE: 'references' is NOT the global reference counter for
INSIST(!cds_lfht_destroy(qpdb->common.update_listeners, NULL));
}
- isc_mem_putanddetach(&qpdb->common.mctx, qpdb, sizeof(*qpdb));
+ isc_mem_putanddetachx(&qpdb->common.mctx, qpdb, sizeof(*qpdb),
+ ISC_MEM_ALIGN(ISC_OS_CACHELINE_SIZE));
}
static void
isc_result_t result;
dns_qp_t *qp = NULL;
- qpdb = isc_mem_get(mctx, sizeof(*qpdb));
+ qpdb = isc_mem_getx(mctx, sizeof(*qpdb),
+ ISC_MEM_ALIGN(ISC_OS_CACHELINE_SIZE));
*qpdb = (qpzonedb_t){
.common.origin = DNS_NAME_INITEMPTY,
.common.rdclass = rdclass,
static bool
ownercase_test_one(const char *str1, const char *str2) {
isc_result_t result;
- uint8_t qpdb_s[sizeof(qpzonedb_t) + sizeof(qpzone_bucket_t)];
+ alignas(qpzonedb_t)
+ uint8_t qpdb_s[sizeof(qpzonedb_t) + sizeof(qpzone_bucket_t)];
qpzonedb_t *qpdb = (qpzonedb_t *)&qpdb_s;
*qpdb = (qpzonedb_t){
.common.methods = &qpdb_zonemethods,
ISC_RUN_TEST_IMPL(setownercase) {
isc_result_t result;
- uint8_t qpdb_s[sizeof(qpzonedb_t) + sizeof(qpzone_bucket_t)];
+ alignas(qpzonedb_t)
+ uint8_t qpdb_s[sizeof(qpzonedb_t) + sizeof(qpzone_bucket_t)];
qpzonedb_t *qpdb = (qpzonedb_t *)&qpdb_s;
*qpdb = (qpzonedb_t){
.common.methods = &qpdb_zonemethods,