Thread (43 messages) 43 messages, 4 authors, 2024-01-31

Re: [PATCH 6/6] eventfs: clean up dentry ops and add revalidate function

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2024-01-31 23:23:40
Also in: lkml

On Thu, 1 Feb 2024 08:07:15 +0900
Masami Hiramatsu (Google) [off-list ref] wrote:
quoted
Then tracefs could be nicely converted over to kernfs, and eventfs would be
its own entity.  
If so, maybe we can just make symlinks to the 'id' and 'format' from events
under tracefs? :)
I don't think that will save anything. The files currently do not allocate
any memory. If we make symlinks, we need to allocate a path, to them. I
think that would be rather difficult to do. Not to mention, that could
cause a lot of breakage. What do you do if the other filesystem isn't
mounted?

I could possibly make a light way handle to pass back to the callbacks.

struct trace_event_light {
	unsigned long			flags
	struct trace_event_call		*event_call;
};

struct trace_event_file {
	struct trace_event_light	call;
	[..]
	// Remove he flags and event_call and have it above
};

if the callback data has:

 callback(..., void **data)
 {
	struct trace_event_light *call = *data;
	struct trace_event_file *file;

	If (strcmp(name, "id") == 0 || strcmp(name, "format") == 0) {
		*data = call->event_call;
		return 1;
	}

	/* Return if this is just a light data entry */
	if (!(data->flags & TRACE_EVENT_FULL))
		return 0;

	file = container_of(data, struct trace_event_file, call);

	// continue processing the full data
}

This way the lonely eventfs could still share a lot of the code.

-- Steve
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help