This is the mail archive of the systemtap@sources.redhat.com 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,
Here is a design to support "Mulitple handler sets per address". I have also put in the i386 implementation based on this design.
Some notes:
- The interfaces to register, unregister, define handlers all remain
the same.
- A kprobe and jprobe cannot co-exist at the same location. (Ideas are welcome on how to support this).
I have minimally tested the patch and it works(tm).
Please let me know your thoughts on the design. I'd also appreciate if you could test the patch (diffed against 2.6.12-rc1-mm3) and provide feedback.
Thanks, Ananth
Attachment:
kprobe_multi.tar.gz
Description: Unix tar archive
Apr 1 16:55:37 slingshot kernel: Starting multiple probe test Apr 1 16:55:37 slingshot kernel: kprobe start 4598638287747, stop 4598638288082 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 335 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 33 cycles per iteration Apr 1 16:55:37 slingshot kernel: kprobe start 4598638357393, stop 4598638357520 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 127 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 12 cycles per iteration Apr 1 16:55:37 slingshot kernel: kprobe start 4598638423362, stop 4598638423447 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 85 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 8 cycles per iteration Apr 1 16:55:37 slingshot kernel: kprobe start 4598638489422, stop 4598638489525 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 103 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 10 cycles per iteration Apr 1 16:55:37 slingshot kernel: kprobe start 4598638556287, stop 4598638556361 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:37 slingshot kernel: kprobe start 4598638621687, stop 4598638621761 Apr 1 16:55:37 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:37 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:37 slingshot kernel: PASSED: for 0 Apr 1 16:55:37 slingshot kernel: Debug: sleeping function called from invalid context at mm/slab.c:2096 Apr 1 16:55:37 slingshot kernel: in_atomic():0, irqs_disabled():1 Apr 1 16:55:37 slingshot kernel: [<c0122794>] __might_sleep+0xa4/0xc0 Apr 1 16:55:37 slingshot kernel: [<c01550c3>] __kmalloc+0xc3/0xd0 Apr 1 16:55:37 slingshot kernel: [<c0155264>] kcalloc+0x34/0x70 Apr 1 16:55:37 slingshot kernel: [<c014919b>] register_kprobe+0xbb/0x140 Apr 1 16:55:37 slingshot kernel: [<e0946367>] init_module+0x217/0x250 [kprobe_multi] Apr 1 16:55:37 slingshot kernel: [<c0141f75>] sys_init_module+0x145/0x200 Apr 1 16:55:37 slingshot kernel: [<c01041bf>] sysenter_past_esp+0x54/0x75 Apr 1 16:55:37 slingshot kernel: kprobe start 4598639025089, stop 4598639040308 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 15219 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1521 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639108235, stop 4598639117436 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9201 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 920 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639184487, stop 4598639193581 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9094 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 909 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639261480, stop 4598639262100 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 620 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 62 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639328587, stop 4598639328676 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 89 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 8 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639394662, stop 4598639394736 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 1 Apr 1 16:55:38 slingshot kernel: kprobe start 4598639487780, stop 4598639498446 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 10666 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1066 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639565637, stop 4598639574764 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9127 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 912 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639641262, stop 4598639650380 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9118 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 911 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639719949, stop 4598639720575 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 626 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 62 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639879712, stop 4598639879878 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 166 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 16 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598639946037, stop 4598639946111 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 2 Apr 1 16:55:38 slingshot kernel: kprobe start 4598640028491, stop 4598640040217 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 11726 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1172 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640107562, stop 4598640117435 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9873 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 987 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640184162, stop 4598640194051 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9889 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 988 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640261790, stop 4598640262365 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 575 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 57 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640330162, stop 4598640330236 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640395737, stop 4598640395811 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 3 Apr 1 16:55:38 slingshot kernel: kprobe start 4598640476821, stop 4598640487272 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 10451 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1045 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640554637, stop 4598640563709 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9072 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 907 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640630987, stop 4598640640068 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9081 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 908 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640707600, stop 4598640708178 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 578 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 57 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640775337, stop 4598640775411 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598640842812, stop 4598640842886 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 4 Apr 1 16:55:38 slingshot kernel: kprobe start 4598640924187, stop 4598640935382 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 11195 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1119 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641005512, stop 4598641015386 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9874 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 987 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641081787, stop 4598641091671 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9884 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 988 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641168891, stop 4598641169478 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 587 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 58 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641237062, stop 4598641237136 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641302687, stop 4598641302761 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 5 Apr 1 16:55:38 slingshot kernel: kprobe start 4598641386144, stop 4598641397361 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 11217 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1121 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641475685, stop 4598641485777 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 10092 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1009 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641553087, stop 4598641562980 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 9893 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 989 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641630651, stop 4598641631253 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 602 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 60 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641698612, stop 4598641698686 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641764137, stop 4598641764211 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 6 Apr 1 16:55:38 slingshot kernel: kprobe start 4598641846942, stop 4598641859837 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 12895 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1289 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598641927237, stop 4598641937642 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 10405 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1040 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598642004787, stop 4598642015191 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 10404 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 1040 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598642083495, stop 4598642084103 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 608 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 60 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598642151762, stop 4598642151836 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: kprobe start 4598642217212, stop 4598642217286 Apr 1 16:55:38 slingshot kernel: kprobe overhead count 10, number of cycles 74 Apr 1 16:55:38 slingshot kernel: kprobe overhead of 7 cycles per iteration Apr 1 16:55:38 slingshot kernel: PASSED: for 7
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |