This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi James,
On Wed, Sep 14, 2005 at 11:10:40AM -0500, James Dickens wrote:
struct uprobe { /*path of the application */ char name[50];
this doesn't scale, should be a pointer to a list of applications being probed.
Now with having kernel module allocate this application pathname string and copying the path name to application pathname string should work. With this change, the uprobes structure will look like
struct uprobe {
char *pathname;
...............
With this, the kernel module need to allocate pathname string one for each
application and pass the pointer of the same pathname to insert probes within
that application. This should help to scale well.
450000 * 50 = 22.5 MB.. far too much for kernel space before we even do any work.
Now it will just the stringlength size of memory need to be allocated
for all the probes (say 450000) probes within the same application.
As per your example, now you will have
strlen(application_path) + (450000 * sizeof(char *)) = 1.8 MB.
Thanks Prasanna
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |