-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
1379 lines (856 loc) · 42 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Sat Oct 10 15:51:22 2009 fox
329* libproc/*: Rename dprintf to p_dprintf to avoid glibc issues.
328* dtrace_linux.c, dtrace_isa.c: Fixes for 2.6.31 (hopefully 2.6.32)
kernels. May have broken older kernels.
Mon Aug 3 23:18:25 2009 fox
327* dtrace_isa.c: Fix for oldrsp in 2.6.30.4 kernel.
Fri Jul 24 20:13:15 2009 fox
326* Archive: 1.0100
325* Below two changes for RH 2.6.18-92.1.13.el5xen kernel
(Oracle platform)
324* intr_x86-32.S: Add conditional if __KERNEL_PERCPU does not
exist in this kernel.
missing.c: Add checks for strcmp/strlen to avoid asm/string.h
conflicts.
profile.c: Add missing strcasecmp() prototype.
323* missing.c: smp_call_function_single: Only defined if SMP, not
a kernel version specific function.
tools/mkport.pl: Add special detection for smp_call_function_single
since theres a variety of scenarios to support.
Thu Jul 23 20:07:18 2009 fox
322* Pcontrol.c, Putil.c: Rename dprintf to p_dprintf to avoid glibc
clashes.
Mon Jul 20 21:10:50 2009 fox
321* driver/dwarf.c: Subroutine code for stack walking and for the
build/dwarf userland binary.
320* Archive: 1.0099
Tue Jul 14 21:15:07 2009 fox
319* toxic.c: Add level3_kernel_pgt and level2_kernel_pgt because
these are data areas, not code areas. ([email protected])
Fri Jul 10 22:50:35 2009 fox
318* dtrace_linux.c: Patch to handle smp_call_function_single() when
invoking current cpu by <[email protected]>
strcasecmp: Fix const correctness.
dtrace_isa.c: fix call to dump_trace on 2.6.18 kernel.
Sun Jun 28 18:08:39 2009 fox
317* dtrace_linux.c: instr_in_text_seg: Use strncmp instead of strcmp
to avoid potential GPF. Dont know why this may help, but its
a useful addition.
Sat Jun 27 20:23:53 2009 fox
316* dtrace_isa.c, dtrace_linux.c: Make stack() work - using the
kernels dump_trace code - if its present, else a cheaper
stack walker.
We have problems getting a stack on syscall::: provider.
Tue Jun 23 23:52:03 2009 fox
315* dtrace_linux.c: Disable the GPF interrupt hook for now -- we
dont need it, and on a 32b kernel, reloading dtrace lots
of times can crash the kernel.
314* tools/build.pl: Detect if we have bison/yacc/flex.
Mon Jun 22 21:03:36 2009 fox
313* Archive: 1.0098
312* dt_proc.c: Handle -p <pid> command line switch.
Sun Jun 21 21:27:25 2009 fox
311* Archive: 1.0097
310* dt_proc.c, Pcontrol.c: Make dtrace -c <cmd> work.
Wed Jun 17 23:29:46 2009 fox
309* Archive: 1.0094
308* libdtrace/makefile: Put dt_grammar.h in the build dir so that
it is not part of the release, to avoid polluting peoples
systems with my yacc or bison build.
Tue Jun 16 22:00:24 2009 fox
307* dtrace_linux.c: lx_get_curthread_id: Use current->pid, rather
than zero. <[email protected]>
Sun Jun 14 09:58:36 2009 fox
306* Archive: 1.0093
305* dtrace_linux.c: We need to preallocate and change the
process shadowing code, so that when we use predicates such
as
dtrace -n 'syscall::: /pid == NNN/ {}'
that we can actually intercept the targetted process and not
confuse dtrace_probe when we share the shadow structure.
304* Various: change dprintf() to be dprintf1() because GLIBC
likes to break working apps and defines a POSIX dprintf().
POSIX like to break working apps too, and should be ashamed
of themselves.
303* systrace.c, dtrace_linux.c: Make the pt_regs available to
dtrace_probe() so we can access register specific state.
Handle nesting of interrupts (so we dont destroy the
pt_regs pointer in the event of an interrupt on a syscall).
302* dtrace.c, dtrace_linux.c: Add 'ipl' probe function support.
Fri Jun 12 19:51:37 2009 fox
301* dtrace_linux.c: Avoid proc shadowing - dont think we need
this and can do it with per-cpu allocation instead.
(par_setup_thread1).
300* cpu_x86.c: Fixed the issue with CALLR and the other call
instructions which manipulate the stack as we step over them.
32 and 64 bit kernels should be safe - til we hit another
instruction we have never seen before.
299* Archive: 1.0092
Wed Jun 10 18:34:03 2009 fox
298* dtrace_linux.c: Remove dependency on init_mm for 2.6.30 kernel.
Tue Jun 9 21:32:20 2009 fox
297* cpu_x86.c: Add support for stepping over 0x7n Jump relative
instructions for the instruction provider.
Mon Jun 8 22:39:17 2009 fox
296* instr_linux.c: Instruction provider. Not fully tested/debugged.
295* dtrace_linux.c: Fix for 2.6.29 task_struct/cred structure compile.
Sun Jun 7 11:12:40 2009 fox
294* Archive: 1.0091
293* dtrace.h, dtrace.c, cpu_var.h: Add some dtrace fixes from
opensolaris-20090607.
292* fbt_linux.c: Added /proc/dtrace/fbt so we can get info about
probes. This is CPU intensive and O(N^2) in performance, so treat
with care. This is to help debug or add perf stats.
Thu Jun 4 22:08:45 2009 fox
291* strings.h: Dont undef __USE_BSD. Dont know why Sun insist on using
the legacy strings.h and not ISO string.h. Oh well.
Sun May 31 10:39:20 2009 fox
290* dtrace_linux.c, intr_x86*.S: Add support for INT13 (GPF), so
we can disable ourselves when we run into issues.
289* toxic.c: Add system_call: This is a very special kernel
entry point and if we probe it, we may get a kernel double-fault
because the stack wont be ready for kernel space.
Fri May 29 19:50:52 2009 fox
288* driver/cpu_x86.c: New file - put the single step cpu specific code
in here, from dtrace_linux.c.
Add support for 0xEn opcodes (call/jump/loop instructions).
Thu May 28 23:55:45 2009 fox
287* dtrace_linux.c: Handle the FF .. opcodes (indirect jump/calls).
fbt::__delay: now works on my Ubuntu 32bit kernel.
(Not yet proven for 64bit kernels).
Wed May 27 20:25:44 2009 fox
286* instr_size.c: Workaround for LOCK/REPZ/REPNZ prefix instructions.
Mon May 25 21:44:26 2009 fox
285* fbt_linux.c, dtrace_linux.c: Enable more 32-bit instructions
for :entry traces. Not all have been validated yet, but
the code has been left in a safe state.
284* dtrace_linux.c: Dont do RIP addressing mode for 32-bit cpu.
Sat May 23 19:18:09 2009 fox
283* intr_x86-32.S, intr_x86-64.S: Add a dummy mcount function
in case kernel is compiled with -pg. We mustnt call into
the kernels mcount else we hit a recursion error.
282* fbt_linux.c: Re-enable more x86-64 opcodes which were disabled
whilst debugging the interrupt handlers.
281* fbt_linux.c, dtrace_linux.c, cpuvar.h: Compute modrm byte
during analysis phase, not during an interrupt, to lower overhead
of RIP addressing mode handler.
280* Archive: 1.0090
Thu May 21 23:10:10 2009 fox
279* systrace.c: Fix for write-protected interrupt handlers.
(patch_enable).
Wed May 20 21:55:34 2009 fox
278* dtrace_linux.c: Move /dev/dtrace into /proc/dtrace and segregate
the debug streams into separate entries (debug, security, stats, trace).
This is easier to handle >4K reads for the trace buffer.
Sun May 17 20:51:17 2009 fox
277* intr_x86-64.S: Allow us to probe an IRET instruction.
(irq_return)
Sat May 16 22:19:52 2009 fox
276* dtrace_linux.c: Add support for RIP relative addressing mode
single step.
275* dtrace_linux.c: Add dtrace_memcpy to avoid reentrancy issues when
we probe memcpy(). This happens because we use this inside our
single step handler.
274* fasttrap.c: Avoid kernel panic when invoking a USDT since
we are tuned to the number of cpus, not the max of cpus we
could have.
Fri May 15 21:56:07 2009 fox
273* Archive: 1.0089
272* tools/load.pl, makefile: Load /etc/dtrace.conf into the kernel
if present. SUDO when appropriate because now we need to be
root to talk to the kernel.
Please edit /etc/dtrace.conf - it contains my uid in there which
isnt appropriate for your system, but change according to taste.
It wont get overwritten in a new 'make install', so its
persistent.
271* dtrace.c, dtrace_linux.c: Fix security policy issues.
Thu May 14 21:30:46 2009 fox
270* fbt_linux.c: Allow opcode 0x48 for 64-bit. More than doubles
Ubuntu 8.10 / 2.6.27.8 kernel probes. We can allow them all
through but just taking it slowly.
Wed May 13 21:27:06 2009 fox
269* dtrace_linux.c: Add security parsing for /dev/dtrace.
Tue May 12 20:34:40 2009 fox
268* Archive: 1.0088
267* driver/*: Fix compilation issues with earlier kernels regarding
placement of semaphores and atomic_t and related issues with
mutex macros.
Mon May 11 20:42:02 2009 fox
266* Archive: 1.0087
265* dtrace_linux.c: par_alloc: We had some static initialisation
in here which was breaking predicates for processes.
The process shadowing was broken - we kept cleaning out
the predicate hints. Now, when doing
dd if=/dev/zero of=/dev/null
dtrace -n 'syscall::read: /pid == 7331/ {printf("pid=%d", pid);}'
we get consistent read:entry + read:return pairs, and we
dont just stop probe collecting.
Thanks to <[email protected]> for pointing out this
obvious silliness on my behalf.
264* dtrace_linux.c, fbt_linux.c, sdt_linux.c: If we have a recursive
probe, then when we disable the probe, dont let it fire !
Else we get multiple recursions leading to a cpu triple fault.
This seems to fix the 32-bit instability issue, and let me see
where the recursion issue has happened.
Sun May 10 21:47:15 2009 fox
263* linux_types.h, driver/*: Use semaphores instead of mutexes
since mutexes arent available in interrupt context.
Sat May 9 09:57:35 2009 fox
262* libdtrace/makefile: Put dt_lex.c in the build dir since it
depends on the version of flex we are using.
261* Archive: 1.0086
260* dtrace_linux.c: Some portability cleanups - so we can handle
the differing kernels.
259* utils/make_kernel.pl, Makefile: Allow us to cross build/validate
i386 kernels on a 64 bit machine. (For my benefit only).
258* dtrace_linux.c: Fixes for 2.6.22/i386 set_idt_entry.
Thu May 7 22:29:11 2009 fox
257* dtrace_linux.c: Fix compile issue for 2.6.22/i386 on desc_defs.h
include.
Wed May 6 20:29:31 2009 fox
256* dtrace_linux.c: dtrace_gethrtime: Never call do_gettimeofday, since
we will block if that is interrupted.
dtrace_linux.c: Comment out the register_die_notifier code since
we no longer need it. We are directly attached.
Allow /dev/dtrace to be read to print out some debug stats.
Nothing useful.
Sat May 2 14:22:15 2009 fox
255* Archive: 1.0085
254* dtrace_linux.c: Use direct INT3 vector attachments to avoid
long toxic lists.
intr_x86-64.S: New file for the INT3 interrupt handler.
Mon Apr 27 20:07:36 2009 fox
253* Archive: 1.0084
Sun Apr 26 11:22:44 2009 fox
252* cpu_64bit.c, fbt_linux.c: Add support for XOR REG,REG
Sat Apr 25 23:00:24 2009 fox
251* fbt_linux.c: Fix handling of module sections for pre-2.6.19
kernels. We couldnt properly validate if symbols in .text section.
Add support for PUSH %RCX entry point; change amd64
entry point so we only accept first instruction in function,
like we do for i386.
Fri Apr 24 21:45:05 2009 fox
250* fbt_linux.c: Fix issue with 64-bit entry probe searching.
Should never have worked for funcs which start PUSH %RBP, but
did.
Thu Apr 23 21:15:58 2009 fox
249* scripts/dt.pl -- make it more usable. This is to replace
the various scripts/*.d test examples.
248* dtrace_isa.c: Use copy_from_user to avoid kernel panic if
copyinstr() called on an argument which isnt a pointer type
arg to a syscall.
Wed Apr 22 21:00:26 2009 fox
247* driver/cyclic_linux.c: Use old timers for non-hrtimer
aware kernels.
Tue Apr 21 08:13:00 2009 fox
246* dtrace_linux.c: Allow us to read/write from /dev/dtracedrv for
debugging.
245* Archive: 1.0083
244* driver/systrace.c: More surgery to ensure we pick up
the right syscall for all syscalls, and avoid dependency
on GCC local variable allocations for finding the syscall.
Also get rid of a few magic numbers in dtrace_systrace_syscall
which were causing some of the troubles.
243* driver/systrace.c: Put in the handler for 2.6.9 special
case for execve requiring pt_regs passing by value.
Mon Apr 20 23:41:08 2009 fox
242* driver/systrace.c: Replace the assembler sequence for
execve() and rt_sigreturn() with a patch sequence to
allow for more generic kernel version handling.
Sun Apr 19 00:02:12 2009 fox
241* dt_subr.c: dt_sysconf: Was returning wrong number of cpus.
240* Archive: 1.0082
Sat Apr 18 12:45:26 2009 fox
239* driver/cyclic_linux.c: Handle API/struct changes in 2.6.28
kernels.
238* driver/cyclic_linux.c: Fix the hrtimer restart issue
which was crashing the kernel (not increasing the time
locks the kernel since timer keeps refiring).
Thu Apr 16 20:20:57 2009 fox
237* dtrace_linux.c: Tidy up the syms[] array which is filled in
from userspace to bootstrap us.
236* Archive: 1.0080
235* dtrace_linux.c: Fix typo in on_notifier_list, and avoid
repeated calls to get_proc_addr when entries dont exist.
234* tools/load.pl: Try /boot/System.map-`uname -r` for symbols
which may be missing (AS4). Remove sys_syscall which isnt
valid at all.
Tue Apr 14 20:17:10 2009 fox
233* cyclic_linux.c: Emergency patch to disable cyclic timer
til i fix the crashing...
232* Remove all compiler warnings for the driver (still working on
init_mm), so I can see wood-for-trees on 2.6.9;
kernel 2.6.28+ is clean, but 2.6.9 has a few noisy differences.
231* driver/cyclic_linux.c: Remove warnings and fix way
hrtimer callbacks work (based on 2.6.28)
230* Various: cleanup the exit functions for the drivers, since
Linux 2.6.9 doesnt like calls to misc_deregister() if we
never registered the structure.
dtrace_linux.c:
Remove redundant calls to remove_proc_entry() which can panic
2.6.9.
Mon Apr 13 11:03:10 2009 fox
229* dtrace_linux.c: par_alloc. Allocate memory with GFP_ATOMIC since
we may be in interrupt context and AS4 doesnt like us.
228* cpuvar.h, fasttrap_impl.h: Avoid struct padding for Linux
2.6.9 where we end up with a negative array size since
sizeof(mutex_t) is > 64 bytes.
227* fbt_linux.c: Avoid possible GPF when loading driver and trawling
the available modules.
226* Archive: 1.0079
225* driver/dtrace_linux.c: Fix re-entrancy problem for fbt:::
due to kprobes notifier wanting to be first.
Tue Apr 7 23:55:48 2009 fox
224* systrace.c: Fix calling sequence for fork/vfork/iopl/sigaltstack.
Mon Apr 6 21:54:17 2009 fox
223* Archive: 1.0078
222* systrace.c: We broke 32-bit syscalls. Now fixed.
221* makefile: Move to tools/build.pl, so we can start to extend
for other cpu types.
220* systrace.c: Fix silly assemblerism.
219* dtrace_linux.c, fasttrap.c, missing.c: Add support for AS4
2.6.9+patches kernel.
Sun Apr 5 18:05:55 2009 fox
218* systrace.c: Fix fork/vfork/sigaltstack - forgot to put the
switch statement into get_interposer.
217* usdt/c/makefile: Keep the src dir clean - all objects now in the build dir.
Sat Apr 4 10:44:41 2009 fox
216* Archive: 1.0077
215* systrace.c: Add handlers for fork/vfork/iopl/sigaltstack.
214* systrace.c: Fix amd64 clone() syscall handler.
213* Archive: 1.0076
Sun Mar 29 15:27:08 2009 fox
212* Archive: 1.0074
211* fbt_linux.c: Fix for 2.6.29
210* dtrace.c: Fixes for 2.6.29
209* linux_types.h: Fix for including <sys/cred.h> on 2.6.29
kernel.
Sun Mar 22 09:28:26 2009 fox
208* Archive: 1.0073
207* dtrace_linux.c: Undo last change - it wasnt what the problem was.
Problem is that an SMP kernel may say we have 64 cpus, when we
only have 1 or 2, so buffer allocation went thru the roof --
64 * 4MB of RAM, and we OOM'ed. Now we utilise number of online
cpus at driver load time. (We need to do work if we online
cpus whilst system is up, since the arrays will be too small).
206* dtrace.c: Do some rough memory calcs when allocating the state
buffers to avoid starvation on 512MB systems.
205* ctl.c: Fix to compile on 2.6.18.
204* dtrace_linux.c: Fix PTE modifications for x86-64 which uses
a 4-level page table and for which later kernels try hard
to stop us from patching the syscall table.
203* fbt_linux.c: Re-put-back the sanity check on kernel functions
so we dont crash when we hit code in non-standard .text sections.
Wed Mar 11 23:30:11 2009 fox
202* tools/load.pl: Add more diagnostics if things go wrong.
201* tools/load.pl: Add missing -mem_alloc switch.
200* dtrace_asm.c: Fix the 64-bit assembler to avoid call frame
issues with differing compilers.
"dtrace -n fbt:::" works again for 64-bit.
Mon Mar 9 20:44:28 2009 fox
199* dtrace_linux.c: Support for non ATOM_NOTIFIER_HEAD kernels.
(AS4)
Sun Mar 8 00:39:01 2009 fox
198* fbt_linux.c: Fix 64-bit fbt.
197* cpu_32bit.c, fbt_linux.c: Emulate PUSH EAX instruction.
196* cpu_32bit.c, fbt_linux.c: Emulate PUSH $nn instruction.
195* cpu_32bit.c, fbt_linux.c: Emulate CLI instruction.
194* Archive: 1.0070
193* toxic.c: Add __mutex_* functions to the list since we
invoke mutex_lock/mutex_unlock and these are part of
the implementation.
dtrace -n fbt:::
seems to work now - at least under lighter load.
192* fbt_linux.c: Dont include functions from the .exit section
of a module.
191* fbt_linux.c, dtrace_linux.c: Add on_notifier_list() to
detect if a target probe point is on one of our notifier
chains, and will cause kernel mayhem if we probe it.
Sat Mar 7 09:02:09 2009 fox
190* missing.c: Add strlen(), and strncmp() for older kernels/gcc's.
189* fbt_linux.c: When examining module symbols, ignore any in
the ".init" sections, else we can be trying to touch reclaimed
pages.
188* fbt_linux.c: Dont allow us to create probes for module "init"
functions which are likely sitting in unmapped pages. This
caused problems in dtrace_close() as we tried to unpatch them,
but they may not be mapped or contain data since the pages would
have been freed.
187* tools/load.pl, dtrace_linux.c: Add a -mem_alloc option
to turn on memory tracing. (Its too voluminous if enabled
with -here).
186* fbt_linux.c:fbt_disable: Dont unpatch a probe we never
enabled in the first place (eg, because kernel unmapped
a .init section).
185* Archive: 1.0069
184* toxic.c: Add do_int3, since this is the core of the
kernel for invoking us when a probe fires.
183* dtrace_linux.c: par_setup_thread: Hack for the moment to
avoid reentrancy issues in dtrace_probe.
Fri Mar 6 14:09:04 2009 fox
182* toxic.c: Remove non-toxic functions (not all, but many).
Add notifier_call_chain.
181* cpu_32bit.c: Fix "SUBL $0,%ESP".
180* cpu_32bit.c: Fix "MOV %ESP,%EAX" emulation which was
causing kernel to die when we trace local_bh_disable.
Thu Mar 5 23:31:02 2009 fox
179* cpu_32bit.c: Fix "TEST %EAX,%EAX" emulation.
Tue Mar 3 10:33:15 2009 fox
178* dtrace_linux.c: dtrace_gethrtime() Fix bug stopping us probe
nr_active and friends and other timer related functions, since
we deadlocked inside our probe interrupt. Need to fix dtrace_gethrtime
since we do a read from a multiword item, and this can change
whilst we read it, leading to potentially non-monotonic
clock.
177* Archive: 1.0068
176* systrace.c, fbt_linux.c, dtrace_linux.c: For fbt probes,
the i386 kernel is write protected; make pages writable,
to avoid paniccing the driver.
Sun Mar 1 00:10:21 2009 fox
175* Archive: 1.0067
174* toxic.c: Added to allow filtering of bad probe funcs in the
kernel. Not finished yet (for my kernel).
173* dtrace.c, fbt_linux.c: Add support for fbt:kernel:... so
we can start tracing real kernel functions. This is dangerous
at this time (wait for next update?) since you can trace
anything - including the bits of the kernel dtrace depends on.
Next step is to hide those symbols we depend on so you can
do:
dtrace -n fbt:kernel::
172* cpu_32bit.c: Add support for 89 c0..c7 (mov %eax,reg)
171* Archive: 1.0066
170* dtrace_asm.c: Fix dtrace_interrupt_disable - we broke
the C/asm interface semantics - would crash a real cpu, but
not vmware for some reason.
Sat Feb 28 22:45:59 2009 fox
169* makefile: recreate build symlink each time in case of kernel
upgrade.
Fri Feb 27 20:16:31 2009 fox
168* makefile: Add a 'build' number when we create a release in case
we release multiple times per day.
167* fbt_linux.c, cpu_32bit.c: Add support for
XOR reg,reg
JMP nnnn
instructions
166* driver/cpu_emulate.c: Split into cpu_32bit.c and cpu_64bit.c
165* Archive: 1.0065
164* dtrace_asm.c: Fix nesting of interrupt disable for i386.
Wed Feb 25 19:11:10 2009 fox
163* load.pl: If we have an error, tell them a little more about
why the driver load failed.
162* makefile: Add a dependency checker before people build.
Mon Feb 23 21:45:13 2009 fox
161* cpu_emulate.c: Emulate SUB $4,ESP
160* cpu_emulate.c: Emulate TEST EAX,EAX
159* cpu_emulate.c: Fix SUB $nn,ESP where nn == 0x18
Sun Feb 22 11:31:20 2009 fox
158* cpu_emulate.c: Add support for SUB $8,ESP
157* cpu_emulate.c: Fix problem with SUB $12,ESP instruction
156* Archive: 1.0064
155* systrace.c: Fix for sys_clone - now we dont get the core dumps.
154* systrace.c: Fix for sigreturn needing a proper call frame so
it can patch the registers. [i386 only]
This appears to work
dtrace -n syscall:::
Sat Feb 21 10:25:07 2009 fox
153* cpu_emulate.c: Emulate PUSH ESI.
We need to avoid having a zillion case/defines where we
can use the CPU opcode decoding to get big-bang-for-buck.
We need to pass in the missing opcode so we can decide
which is better to do.
152* dtrace_linux.c: Use vmalloc for large buffer allocations to avoid
smacking the kernel badly with our large probe buffer.
151* cpu_emulate.c: Emulate PUSH EDI
Fri Feb 20 20:12:05 2009 fox
150* cpu_emulate.c: Emulate PUSH EBX
149* makefile+tools/bug.sh: Add a .release file, so we know
what people are building on when reporting a bug.
148* drivers/missing.c: Fix for 2.6.23.1-42.fc8 missing
find_task_by_vpid.
Thu Feb 19 21:55:51 2009 fox
147* cpu_emulate.c: Add support for "SUB $12,ESP" - where the
reti stack frame overlapped our saved regs. Special case.
We can merge this with the generic (>12) case later.
Still need to handle "SUB $8,ESP" and "SUB $4,ESP"...which
should be easier for we have the $12 code.
146* Few cleanups and fixes for AS4 release.
Wed Feb 18 21:58:50 2009 fox
145* dt_link.c: Fix properly for 32 + 64 bit architectures.
Same reason as below. Also create a temp file to contain
the intermediate linker object rather than rely on /dev/fd/NNN.
Tue Feb 17 22:07:40 2009 fox
144* dt_link.c: When writing the USDT output object file, use
a section type of SHT_PROGBITS and not SHT_SUNW_dof, since
some older binutils/ld will not like what we did (too
over zealous validation).
Mon Feb 16 22:59:10 2009 fox
143* Archive: 1.0061
142* cpu_emulate.c: Add support for "SUB $nnn,%ESP"
Sun Feb 15 10:47:15 2009 fox
141* fbt_linux.c, dtrace_linux.c: Use INT3 traps for entry/return
Need to handle more than just LEAVE/RET for FBT on i386.
Fix INT3 handler to emulate the blotted-out instruction.
140* Archive: 1.0060
Sun Feb 8 10:02:02 2009 fox
139* Archive: v1.0059
138* cpu_emulate.c: The fbt for i386 wont work on Linux since gcc
generates lots of differing instructions for a function
(also, potentially inline assembler). We need to do more
of a job for i386. So start to handle the new instructions
we are seeing in the various kernel functions.
Sat Feb 7 22:08:31 2009 fox
137* dtrace_linux.c: Fix FBT so it works for x86-64
Not working properly for 32bit kernel yet.
Fri Feb 6 11:09:54 2009 fox
136* Archive: 1.0057
135* drivers/include -> ./include due to new build structure.
build/ is a symlink to build-`uname -r`.
drivers/dtrace/* -> driver
134* makefiles: Allow us to label the build dir with the appropriate
kernel version, so we can do multiple kernel builds.
Thu Feb 5 10:35:22 2009 fox
133* Archive: 1.055
132* fasttrap.c: Werent initting the fasttrap_proc_t mutex, so
we died if a USDT process exited.
131* Fix dtrace_casptr for i386 which would cause copyinstr
to fail.
Wed Feb 4 21:17:32 2009 fox
130* Various: changes to better manage multikernels. Compiled
against 2.6.9, 2.6.24, 2.6.26, 2.6.28
Tue Feb 3 13:03:37 2009 fox
129* Archive: 1.0054
128* systrace.c: Re-engineered to the syscall table patcher --
now works inside vmware and a real 32bit cpu.
Kernel can still panic if you do some syscall tracing
and try and do copyinstr(arg0) - need to find out why.
Mon Feb 2 17:27:39 2009 fox
127* ctl.c: Disable the hunt_init/hunt_cleanup code for the moment
as its crashing the x86 cpu (32b).
126* dtrace_asm.c: Found an issue with the membar functions which
dont work on a real x86(32b) cpu, but do on a VMware
session on a 64b processor, and in 64bit mode. Use SFENCE
instruction.
125* Archive: 1.0053
124* Now works on Ubuntu 2.6.24-16 (32bit) kernel
123* sys/privregs.h: Move the horrors of register and regs/pt_regs
into here. Need to cater for older kernels and i386/x86-64 too.
Sun Feb 1 15:28:56 2009 fox
122* Various: tidy up some kernel compile warnings; remove some
unneeded zero length headers.
Arrange for proc_exit notification to wipe out fasttrap
probes.
121* Various: refactor datamodel computation because we may treat
a 64b proc as a 32b one and access the wrong values for
copyinstr().
We still have some USDT issues: dtrace doesnt know the target
proc exited, so leaves the probes behind.
120* Archive: 1/0052
Sat Jan 31 10:42:32 2009 fox
119* fasttrap_isa.c: Changes to compile on 32bit kernel (tested on
2.6.28 kernel).
Fri Jan 30 22:48:51 2009 fox
118* dt_lex.l: Compat support for AS4 version of flex.
Tue Jan 27 23:22:35 2009 fox
117* Archive: 1.0051
Mon Jan 26 22:42:20 2009 fox
116* dtrace_linux.c: Fix uwrite() interface.
Sun Jan 18 18:51:13 2009 fox
115* dtrace_linux.c: Put in a trap handler for INT3 and pass onto
to dtrace. Not there yet....
Thu Jan 15 20:56:19 2009 fox
114* Archive: 1.0050
113* tests/dt019: Simple usdt example we are trying to make work.
112* fasttrap.c: Avoid kernel panic when we find the target to intercept.
Still not write because we commented out uread/uwrite.
Tue Jan 13 23:52:50 2009 fox
111* Archive: 1.0049
110* fasttrap.c: Define fasttrap_max so that USDT starts to work.
libdtrace/: Lots of hackery to allow us to launch a process.
(Not yet working to completion yet)
Sun Dec 28 00:02:27 2008 fox
109* dtrace_linux.c: Remove old no-longer needed kernel dependencies
so we can compile on 2.6.28
108* drivers/dtrace/systrace.c: Fixes to build on 2.6.27.10 kernel
for 32-bit.
107* dt_link.c: Generate correct ELF patchups for 32-bit libc6 code.
(usdt now builds the user space simple executable)
Sat Dec 27 04:35:47 2008 fox
106* liblinux/getopt.c: Add this because some getopt()s are doing
weird stuff compared to GNU getopt.
Sat Dec 20 22:34:13 2008 fox
105* makefile, tools/build.pl: Handle i686 (32-bit) platform.
Sat Dec 13 08:45:52 2008 fox
104* systrace.c: Avoid panicing 2.6.27.8 kernel due to bad
syscall name.
103* ctl.c: Fix crash on unloading driver.
Fri Dec 12 21:03:00 2008 fox
102* ctl.c: Fix find_task_by_pid, and improve make-me script.
101* Archive: 1.0048
100* dtrace_linux.c: Suggestion to use find_task_by_vpid vs
find_task_by_pid to avoid kernel-ifdefs.
99* drivers/dtrace/dtrace_asm.c, sdt_linux.c, dtrace_isa.c
Some more OpenSolaris 20081211 alignment changes. Nothing
functional fixed, since many of the ON source changes are
more in the Sun kernel code than the common stuff here.
98* drivers/dtrace/dtrace.c: Merge in changes from OpenSolaris 20081211.
Wed Dec 10 10:46:25 2008 fox
97* tools/mksyscalls.pl: [PATCH] Add verbosity flag; print KGDB module load address.
96* tools/mksyscalls.pl: Change to find unistd.h which keeps moving.
Mon Dec 8 22:07:48 2008 fox
95* dtrace_linux.c: Patch for on_each_cpu, smp_call_function, and
asm/stacktrace.h
Thu Dec 4 20:53:33 2008 fox
94* drivers/dtrace/dtrace_isa.c: Fix to handle kernel 2.6.26 and
above.
93* drivers/dtrace/dtrace.c: Fix dtrace_errlock bad mutex defn.
Wed Dec 3 23:16:40 2008 fox
92* Archive: 1.0046
91* drivers/dtrace/ctl.c: We now have a /proc/$$/ctl driver visible.
It doesnt do anything yet, but we have now patched a running
kernel.
Wed Nov 12 22:10:51 2008 fox
90* usdt/*/makefile: Use our compiled dtrace, rather than anything in
the environment.