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] |
I applied your patch, and I also raise the maxaction from 1 to 10, thenDo you mean maxactive? maxactive is not default to 1.
it worked really well, all return probed are caught.
But the default setting of maxaction to 1 is too low for a multi-processor system. It will cause a lot of misses of kretprobe(I counter it on Power5 system for a while, about 2000 kprobes are caught, but only about 400 kretprobe was caught, so about 1600 kretprobes are missed)
I read the "kernel/kprobes.c", and found:
/* Pre-allocate memory for max kretprobe instances */
if (rp->maxactive <= 0) {
#ifdef CONFIG_PREEMPT
rp->maxactive = max(10, 2 * NR_CPUS);
#else
rp->maxactive = NR_CPUS;
#endif
}
Is it appropriate to just delete "if (rp->maxactive <= 0)", to change the above block as:No, you should not make that change. When register a return probe, user has an option to change maxactive.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |