Re: [PATCH v4 00/10] tracing: introducing eventfs

From: Nadav Amit
Date: Fri Jul 21 2023 - 13:17:32 EST



> On Jul 21, 2023, at 6:19 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
>> union {
>> + struct list_head del_list;
>> struct rcu_head rcu;
>> - struct llist_node llist; /* For freeing after RCU */
>> + unsigned long is_freed; /* Freed if one of the above is set */
>
> I changed the freeing around. The dentries are freed before returning from
> eventfs_remove_dir().
>
> I also added a "is_freed" field that is part of the union and is set if
> list elements have content. Note, since the union was criticized before, I
> will state the entire purpose of doing this patch set is to save memory.
> This structure will be used for every event file. What's the point of
> getting rid of dentries if we are replacing it with something just as big?
> Anyway, struct dentry does the exact same thing!

Hey, don’t shoot me…

[And admittedly, I didn’t review the whole series after v1.]

I understand your position, but I think that at least is_freed should not
be in the union, and you can just put it after umode_t.

Even for the matter of size, it should not matter in most architectures
since umode_t is 16-bit, as natural alignment is at least 32-bits.

[ And “bool" is clearer type for is_freed. ]