Prev: blkdev: cgroup whitelist permission fix
Next: linux-next: manual merge of the fsnotify tree with the vfs tree
From: Li Zefan on 18 May 2010 00:50 Steven Rostedt wrote: > From: Steven Rostedt <srostedt(a)redhat.com> > > Move the defined fields from the event to the class structure. > Since the fields of the event are defined by the class they belong > to, it makes sense to have the class hold the information instead > of the individual events. The events of the same class would just > hold duplicate information. > > After this change the size of the kernel dropped another 3K: > > text data bss dec hex filename > 4913961 1088356 861512 6863829 68bbd5 vmlinux.orig > 4900252 1057412 861512 6819176 680d68 vmlinux.regs > 4900375 1053380 861512 6815267 67fe23 vmlinux.fields > It also saves memory allocated by trace_define_field(). :) > Although the text increased, this was mainly due to the C files > having to adapt to the change. This is a constant increase, where > new tracepoints will not increase the Text. But the big drop is > in the data size (as well as needed allocations to hold the fields). > This will give even more savings as more tracepoints are created. > > Note, if just TRACE_EVENT()s are used and not DECLARE_EVENT_CLASS() > with several DEFINE_EVENT()s, then the savings will be lost. But > we are pushing developers to consolidate events with DEFINE_EVENT() > so this should not be an issue. > > The kprobes define a unique class to every new event, but are dynamic > so it should not be a issue. > > The syscalls however have a single class but the fields for the individual > events are different. The syscalls use a metadata to define the > fields. I moved the fields list from the event to the metadata and > added a "get_fields()" function to the class. This function is used > to find the fields. For normal events and kprobes, get_fields() just > returns a pointer to the fields list_head in the class. For syscall > events, it returns the fields list_head in the metadata for the event. > All syscall exit events have the same fields. I'll make a patch for this. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |