I don't remember exactly what you proposed for this, but if you are
intending to replace the inode structure with a generic one which has
a pointer to a separately allocated per-fs structure then here's a
warning. Digital UNIX used to that but had to change it exactly the
opposite way for performance reasons. Its vnode structure used to
have a v_data pointer to a separately allocated per-fs "private"
structure. However, performance was bad because of the pointer
following and the extra fragmentation. They ended up reuniting the two
so that they could allocate the whole (generic + private) structure in
one chunk and then made v_data point to directly after the generic
part (i.e. the start of the no-longer-separate private part).
They did the same with their ungodly mixture of BSD and Mach
structures for tasks and threads: they had separate struct task,
struct proc and struct utask which they combined into a single struct
super_task (though still with pointers between the supposedly
"separate" bits) and they had separate struct thread and struct
np_uthread which they combined into struct super_thread.
--Malcolm
-- Malcolm Beattie <mbeattie@sable.ox.ac.uk> Unix Systems Programmer Oxford University Computing Services- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/