projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add and support the new hash table library
[lttng-tools.git]
/
lttng-sessiond
/
trace-ust.c
diff --git
a/lttng-sessiond/trace-ust.c
b/lttng-sessiond/trace-ust.c
index 00d61432e33aea82a3d77fe17a96bdf00fad2646..0bfcc3bd811ddb3cc4babf55ada1d8fe2686db30 100644
(file)
--- a/
lttng-sessiond/trace-ust.c
+++ b/
lttng-sessiond/trace-ust.c
@@
-22,22
+22,23
@@
#include <unistd.h>
#include <lttngerr.h>
#include <unistd.h>
#include <lttngerr.h>
+#include <lttng-ht.h>
#include <lttng-share.h>
#include <lttng-share.h>
-#include "../common/hashtable.h"
#include "trace-ust.h"
/*
* Find the channel in the hashtable.
*/
#include "trace-ust.h"
/*
* Find the channel in the hashtable.
*/
-struct ltt_ust_channel *trace_ust_find_channel_by_name(struct
cds_lf
ht *ht,
+struct ltt_ust_channel *trace_ust_find_channel_by_name(struct
lttng_
ht *ht,
char *name)
{
char *name)
{
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_str
*node;
+ struct
lttng_
ht_iter iter;
rcu_read_lock();
rcu_read_lock();
- node = hashtable_lookup(ht, (void *) name, strlen(name), &iter);
+ lttng_ht_lookup(ht, (void *)name, &iter);
+ node = lttng_ht_iter_get_node_str(&iter);
if (node == NULL) {
rcu_read_unlock();
goto error;
if (node == NULL) {
rcu_read_unlock();
goto error;
@@
-56,14
+57,15
@@
error:
/*
* Find the event in the hashtable.
*/
/*
* Find the event in the hashtable.
*/
-struct ltt_ust_event *trace_ust_find_event_by_name(struct
cds_lf
ht *ht,
+struct ltt_ust_event *trace_ust_find_event_by_name(struct
lttng_
ht *ht,
char *name)
{
char *name)
{
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_str
*node;
+ struct
lttng_
ht_iter iter;
rcu_read_lock();
rcu_read_lock();
- node = hashtable_lookup(ht, (void *)name, strlen(name), &iter);
+ lttng_ht_lookup(ht, (void *) name, &iter);
+ node = lttng_ht_iter_get_node_str(&iter);
if (node == NULL) {
rcu_read_unlock();
goto error;
if (node == NULL) {
rcu_read_unlock();
goto error;
@@
-102,11
+104,11
@@
struct ltt_ust_session *trace_ust_create_session(char *path, int session_id,
lus->start_trace = 0;
/* Alloc UST domain hash tables */
lus->start_trace = 0;
/* Alloc UST domain hash tables */
- lus->domain_pid =
hashtable_new(0
);
- lus->domain_exec =
hashtable_new_str(0
);
+ lus->domain_pid =
lttng_ht_new(0, LTTNG_HT_TYPE_ULONG
);
+ lus->domain_exec =
lttng_ht_new(0, LTTNG_HT_TYPE_ULONG
);
/* Alloc UST global domain channels' HT */
/* Alloc UST global domain channels' HT */
- lus->domain_global.channels =
hashtable_new_str(0
);
+ lus->domain_global.channels =
lttng_ht_new(0, LTTNG_HT_TYPE_STRING
);
/* Set session path */
ret = snprintf(lus->pathname, PATH_MAX, "%s/ust", path);
/* Set session path */
ret = snprintf(lus->pathname, PATH_MAX, "%s/ust", path);
@@
-162,10
+164,10
@@
struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan,
luc->name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
/* Init node */
luc->name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
/* Init node */
-
hashtable_node_init(&luc->node, (void *) luc->name, strlen(luc->name)
);
+
lttng_ht_node_init_str(&luc->node, luc->name
);
/* Alloc hash tables */
/* Alloc hash tables */
- luc->events =
hashtable_new_str(0
);
- luc->ctx =
hashtable_new(0
);
+ luc->events =
lttng_ht_new(0, LTTNG_HT_TYPE_STRING
);
+ luc->ctx =
lttng_ht_new(0, LTTNG_HT_TYPE_ULONG
);
/* Set trace output path */
ret = snprintf(luc->pathname, PATH_MAX, "%s", path);
/* Set trace output path */
ret = snprintf(luc->pathname, PATH_MAX, "%s", path);
@@
-225,10
+227,9
@@
struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev)
lue->attr.name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
/* Init node */
lue->attr.name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
/* Init node */
- hashtable_node_init(&lue->node, (void *) lue->attr.name,
- strlen(lue->attr.name));
+ lttng_ht_node_init_str(&lue->node, lue->attr.name);
/* Alloc context hash tables */
/* Alloc context hash tables */
- lue->ctx =
hashtable_new(0
);
+ lue->ctx =
lttng_ht_new(0, LTTNG_HT_TYPE_ULONG
);
DBG2("Trace UST event %s created", lue->attr.name);
DBG2("Trace UST event %s created", lue->attr.name);
@@
-297,8
+298,7
@@
struct ltt_ust_context *trace_ust_create_context(
}
uctx->ctx.ctx = ctx->ctx;
}
uctx->ctx.ctx = ctx->ctx;
- hashtable_node_init(&uctx->node, (void *)((unsigned long) uctx->ctx.ctx),
- sizeof(void *));
+ lttng_ht_node_init_ulong(&uctx->node, (unsigned long) uctx->ctx.ctx);
return uctx;
return uctx;
@@
-311,8
+311,8
@@
error:
*/
static void destroy_context_rcu(struct rcu_head *head)
{
*/
static void destroy_context_rcu(struct rcu_head *head)
{
- struct
cds_lfht_node
*node =
- caa_container_of(head, struct
cds_lfht_node
, head);
+ struct
lttng_ht_node_ulong
*node =
+ caa_container_of(head, struct
lttng_ht_node_ulong
, head);
struct ltt_ust_context *ctx =
caa_container_of(node, struct ltt_ust_context, node);
struct ltt_ust_context *ctx =
caa_container_of(node, struct ltt_ust_context, node);
@@
-322,20
+322,20
@@
static void destroy_context_rcu(struct rcu_head *head)
/*
* Cleanup UST context hash table.
*/
/*
* Cleanup UST context hash table.
*/
-static void destroy_context(struct
cds_lf
ht *ht)
+static void destroy_context(struct
lttng_
ht *ht)
{
int ret;
{
int ret;
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_ulong
*node;
+ struct
lttng_
ht_iter iter;
- cds_lfht_for_each
(ht, &iter
, node) {
- ret =
hashtable
_del(ht, &iter);
+ cds_lfht_for_each
_entry(ht->ht, &iter.iter, node
, node) {
+ ret =
lttng_ht
_del(ht, &iter);
if (!ret) {
call_rcu(&node->head, destroy_context_rcu);
}
}
if (!ret) {
call_rcu(&node->head, destroy_context_rcu);
}
}
-
hashtable
_destroy(ht);
+
lttng_ht
_destroy(ht);
}
/*
}
/*
@@
-354,8
+354,8
@@
void trace_ust_destroy_event(struct ltt_ust_event *event)
*/
static void destroy_event_rcu(struct rcu_head *head)
{
*/
static void destroy_event_rcu(struct rcu_head *head)
{
- struct
cds_lfht_node
*node =
- caa_container_of(head, struct
cds_lfht_node
, head);
+ struct
lttng_ht_node_str
*node =
+ caa_container_of(head, struct
lttng_ht_node_str
, head);
struct ltt_ust_event *event =
caa_container_of(node, struct ltt_ust_event, node);
struct ltt_ust_event *event =
caa_container_of(node, struct ltt_ust_event, node);
@@
-365,20
+365,20
@@
static void destroy_event_rcu(struct rcu_head *head)
/*
* Cleanup UST events hashtable.
*/
/*
* Cleanup UST events hashtable.
*/
-static void destroy_event(struct
cds_lf
ht *events)
+static void destroy_event(struct
lttng_
ht *events)
{
int ret;
{
int ret;
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_str
*node;
+ struct
lttng_
ht_iter iter;
- cds_lfht_for_each
(events, &iter
, node) {
- ret =
hashtable
_del(events, &iter);
+ cds_lfht_for_each
_entry(events->ht, &iter.iter, node
, node) {
+ ret =
lttng_ht
_del(events, &iter);
if (!ret) {
call_rcu(&node->head, destroy_event_rcu);
}
}
if (!ret) {
call_rcu(&node->head, destroy_event_rcu);
}
}
-
hashtable
_destroy(events);
+
lttng_ht
_destroy(events);
}
/*
}
/*
@@
-387,15
+387,15
@@
static void destroy_event(struct cds_lfht *events)
void trace_ust_destroy_channel(struct ltt_ust_channel *channel)
{
int ret;
void trace_ust_destroy_channel(struct ltt_ust_channel *channel)
{
int ret;
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_str
*node;
+ struct
lttng_
ht_iter iter;
DBG2("Trace destroy UST channel %s", channel->name);
rcu_read_lock();
DBG2("Trace destroy UST channel %s", channel->name);
rcu_read_lock();
- cds_lfht_for_each
(channel->events, &iter
, node) {
- ret =
hashtable
_del(channel->events, &iter);
+ cds_lfht_for_each
_entry(channel->events->ht, &iter.iter, node
, node) {
+ ret =
lttng_ht
_del(channel->events, &iter);
if (!ret) {
destroy_event(channel->events);
}
if (!ret) {
destroy_event(channel->events);
}
@@
-412,8
+412,8
@@
void trace_ust_destroy_channel(struct ltt_ust_channel *channel)
*/
static void destroy_channel_rcu(struct rcu_head *head)
{
*/
static void destroy_channel_rcu(struct rcu_head *head)
{
- struct
cds_lfht_node
*node =
- caa_container_of(head, struct
cds_lfht_node
, head);
+ struct
lttng_ht_node_str
*node =
+ caa_container_of(head, struct
lttng_ht_node_str
, head);
struct ltt_ust_channel *channel =
caa_container_of(node, struct ltt_ust_channel, node);
struct ltt_ust_channel *channel =
caa_container_of(node, struct ltt_ust_channel, node);
@@
-433,58
+433,58
@@
void trace_ust_destroy_metadata(struct ltt_ust_metadata *metadata)
/*
* Iterate over a hash table containing channels and cleanup safely.
*/
/*
* Iterate over a hash table containing channels and cleanup safely.
*/
-static void destroy_channels(struct
cds_lf
ht *channels)
+static void destroy_channels(struct
lttng_
ht *channels)
{
int ret;
{
int ret;
- struct
cds_lfht_node
*node;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_ht_node_str
*node;
+ struct
lttng_
ht_iter iter;
- cds_lfht_for_each
(channels, &iter
, node) {
- ret =
hashtable
_del(channels, &iter);
+ cds_lfht_for_each
_entry(channels->ht, &iter.iter, node
, node) {
+ ret =
lttng_ht
_del(channels, &iter);
if (!ret) {
call_rcu(&node->head, destroy_channel_rcu);
}
}
if (!ret) {
call_rcu(&node->head, destroy_channel_rcu);
}
}
-
hashtable
_destroy(channels);
+
lttng_ht
_destroy(channels);
}
/*
* Cleanup UST pid domain.
*/
}
/*
* Cleanup UST pid domain.
*/
-static void destroy_domain_pid(struct
cds_lf
ht *ht)
+static void destroy_domain_pid(struct
lttng_
ht *ht)
{
int ret;
{
int ret;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_
ht_iter iter;
struct ltt_ust_domain_pid *dpid;
struct ltt_ust_domain_pid *dpid;
- cds_lfht_for_each_entry(ht
, &iter, dpid,
node) {
- ret =
hashtable
_del(ht , &iter);
+ cds_lfht_for_each_entry(ht
->ht, &iter.iter, dpid, node.
node) {
+ ret =
lttng_ht
_del(ht , &iter);
if (!ret) {
destroy_channels(dpid->channels);
}
}
if (!ret) {
destroy_channels(dpid->channels);
}
}
-
hashtable
_destroy(ht);
+
lttng_ht
_destroy(ht);
}
/*
* Cleanup UST exec name domain.
*/
}
/*
* Cleanup UST exec name domain.
*/
-static void destroy_domain_exec(struct
cds_lf
ht *ht)
+static void destroy_domain_exec(struct
lttng_
ht *ht)
{
int ret;
{
int ret;
- struct
cds_lf
ht_iter iter;
+ struct
lttng_
ht_iter iter;
struct ltt_ust_domain_exec *dexec;
struct ltt_ust_domain_exec *dexec;
- cds_lfht_for_each_entry(ht
, &iter, dexec,
node) {
- ret =
hashtable
_del(ht , &iter);
+ cds_lfht_for_each_entry(ht
->ht, &iter.iter, dexec, node.
node) {
+ ret =
lttng_ht
_del(ht , &iter);
if (!ret) {
destroy_channels(dexec->channels);
}
}
if (!ret) {
destroy_channels(dexec->channels);
}
}
-
hashtable
_destroy(ht);
+
lttng_ht
_destroy(ht);
}
/*
}
/*
This page took
0.03341 seconds
and
4
git commands to generate.