Lines Matching refs:session

31 /* A stat session is the stats output in one file */
40 /* All of the sessions currently in use. Each stat file embed one session */
47 static void __reset_stat_session(struct stat_session *session)
51 rbtree_postorder_for_each_entry_safe(snode, n, &session->stat_root, node) {
52 if (session->ts->stat_release)
53 session->ts->stat_release(snode->stat);
57 session->stat_root = RB_ROOT;
60 static void reset_stat_session(struct stat_session *session)
62 mutex_lock(&session->stat_mutex);
63 __reset_stat_session(session);
64 mutex_unlock(&session->stat_mutex);
67 static void destroy_session(struct stat_session *session)
69 tracefs_remove(session->file);
70 __reset_stat_session(session);
71 mutex_destroy(&session->stat_mutex);
72 kfree(session);
123 static int stat_seq_init(struct stat_session *session)
125 struct tracer_stat *ts = session->ts;
126 struct rb_root *root = &session->stat_root;
131 mutex_lock(&session->stat_mutex);
132 __reset_stat_session(session);
161 mutex_unlock(&session->stat_mutex);
165 __reset_stat_session(session);
166 mutex_unlock(&session->stat_mutex);
173 struct stat_session *session = s->private;
179 mutex_lock(&session->stat_mutex);
182 if (session->ts->stat_headers) {
188 node = rb_first(&session->stat_root);
197 struct stat_session *session = s->private;
203 return rb_first(&session->stat_root);
210 struct stat_session *session = s->private;
211 mutex_unlock(&session->stat_mutex);
216 struct stat_session *session = s->private;
220 return session->ts->stat_headers(s);
222 return session->ts->stat_show(s, l->stat);
232 /* The session stat is refilled and resorted at each stat file opening */
237 struct stat_session *session = inode->i_private;
243 ret = stat_seq_init(session);
249 reset_stat_session(session);
254 m->private = session;
263 struct stat_session *session = i->i_private;
265 reset_stat_session(session);
293 static int init_stat_file(struct stat_session *session)
300 session->file = tracefs_create_file(session->ts->name, TRACE_MODE_WRITE,
301 stat_dir, session,
303 if (!session->file)
310 struct stat_session *session, *node;
327 /* Init the session */
328 session = kzalloc(sizeof(*session), GFP_KERNEL);
329 if (!session)
332 session->ts = trace;
333 INIT_LIST_HEAD(&session->session_list);
334 mutex_init(&session->stat_mutex);
336 ret = init_stat_file(session);
338 destroy_session(session);
344 list_add_tail(&session->session_list, &all_stat_sessions);