forked from dtrace4linux/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Changes
3488 lines (2168 loc) · 110 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
Fri Jan 3 16:11:59 2014 fox
852* driver/dtrace_linux.c, driver/dtrace_linux.h, driver/prov_proc.c:
Additional uid_t/kuid_t fixes.
851* driver/ctl.c, driver/dtrace.c, driver/dtrace_linux.h:
More fixes for uid_t/kuid_t.
850* driver/ctl.c: Fix for 3.8.0 kernel kuid_t
Sun Nov 3 14:34:37 2013 fox
849* Archive: 1.0152
848* tools/readelf.pl: New/experimental script
847* driver/Makefile: Use -gdwarf-2 debug info so we work on
Ubuntu 13.10/gcc-4.8 (else mkctf.sh dies).
Sat Nov 2 18:14:37 2013 fox
846* ctfconvert/dwarf.c: Silly hack for DWARF-4 issue. I still cant
figure out libdwarf vs libdw and how they not only evolve but
the features dont allow one to be implemented from another.
This is a fricking mess.
Sun Oct 20 10:48:45 2013 fox
845* Archive: 1.0151
Sat Oct 19 17:47:23 2013 fox
844* driver/dtrace_linux.c: Fix for /proc/dtrace/trace on 3.11 kernel
which doesnt like big blobs of output.
Fri Oct 18 22:51:33 2013 fox
843* driver/systrace.c: Dont GPF on an amd64 kernel with no
32-bit syscalls support when catting /proc/dtrace/syscall.
Thu Oct 17 23:20:00 2013 fox
842* sdt_linux.c, prov_common.c, dtrace_linux.c: Support for
dynamic/private SDT probes in loadable modules.
Sat Oct 12 08:07:40 2013 fox
841* intr.c: Fix for 3.11 kernel (store_gdt)
Sat Aug 3 21:33:35 2013 fox
840* driver/proc_compat.h: create_proc_entry only if < 2.6.18 kernel.
(Centos 5.5 fix)
Thu Jul 11 23:00:12 2013 fox
839* driver/vminfo.c: Fix for 3.9 kernel.
Sun Jun 23 21:27:38 2013 fox
838* libproc/common/Psymtab.c: Avoid core dump on "dtrace -c ls".
Missing prototype. Cleaned up some other compiler warnings.
"dtrace -c ls" still doesnt work.
Sat Jun 22 18:47:16 2013 fox
837* libdtrace/makefile: Create drti.o with -fPIC to avoid a build
error with "ruby".
Thu May 30 23:45:21 2013 fox
836* tools/mkport.pl: Better detection for
HAVE_ELF_GETSHDRSTRNDX. Without this, Brendan Giggs
"struct sock" test broke.
http://sourceforge.net/apps/trac/elftoolchain/wiki/LibElfIncompatibilityRedHatElfUtils
has the gory details - they changed (fixed) the return code
for elf_getshstrndx which is annoying since we need to know the version
of elfutils to see which API it conforms to. I am seriously unimpressed
that sprawled through the releases - it was a broken API change and
it is a broken API change. WTF are two dyslexically impossible to
read function names used?
Tue May 28 23:10:14 2013 fox
835* driver/dtrace_linux.c: New fix for dtrace_gethrtime(). For kernels
which expose native_sched_clock(), use that for nsec timer accuracy.
Mon May 27 20:49:14 2013 fox
834* driver/intr_x86-64.S: Fix for when CONFIG_PARAVIRT is not turned on.
Sat May 25 17:05:25 2013 fox
833* dtrace_linux.c: Fix for dtrace_gethrtime() for later kernels
where global 'xtime'/'xtime_cache' isnt available.
Sun May 5 17:03:01 2013 fox
832* ctfconvert/dwarf.c: Allow DWARF-2 to DWARF-4. This is possibly
dangerous without code changes and proper validation.
Sat May 4 19:17:55 2013 fox
831* cmd/ctfconvert: Some partial changes to move to libdw.
830* driver/intr.c: Fix FBT probes for i386/x64 due to bug put in
for the __arm__ port.
829* driver/systrace.c: Fix for >=3.8 kernels, since they went and
hid sys_call_table (i386/amd64 only - not ARM, yet).
Fri May 3 23:09:37 2013 fox
828* cmd/convert/dwarf.c: Allow for
struct fred {} xx[10];
(struct lock_class_key)
Thu May 2 22:25:29 2013 fox
827* Archive: 1.0148
Wed May 1 21:06:11 2013 fox
826* driver/systrace.c: Fix stupid typo for x86_64 whereby
syscall:::return probes may not fire if i386 syscall
entry doesnt exist. (I said it was a stupid typo).
Sun Apr 28 08:59:18 2013 fox
825* Archive: 1.0147
824* driver/systrace.c: Re-enable syscall::: for x86 arch.
Tue Apr 23 22:32:39 2013 fox
823* tools/load.pl: Fix for missing ia32_sys_call_table on amd64
kernel.
Sun Mar 17 07:13:40 2013 fox
822* libdtrace/dt_subr.c: Fix for sysconf(_SC_CPUID_MAX) returning 1
more than the actual cpus (this is a 'max' not a counter).
821* driver/taskq.c: Fixes for ARM.
820* driver/dtrace_linux.c: Be careful when kernel not compiled
with CONFIG_PROFILE (ARM) as we would die on a driver reload.
819* driver/dtrace_linux.c: Fix xtime_cache_ptr so that
the timestamp function works on Ubuntu 12.04 (or any >= 3.4
kernel).
Wed Mar 6 22:49:14 2013 fox
818* dtrace.c: dtrace_probe: When checking for Xen probes with
interrupts disabled, be careful of deref of null ptr.
Fri Mar 1 21:53:13 2013 fox
817* linux/sys/regset.h: Fix for i386 build after rearranging for
ARM.
Thu Feb 21 23:25:12 2013 fox
816* Various: Changes to compile on 3.6.8/ARM/RaspberryPi kernel.
ARM is still no good to run. This build *should* compile
apart from the very last section on divmod64.c processing,
but am releasing to keep current. Theres still a lot
of execution time work to do.
Mon Feb 11 21:26:31 2013 fox
815* libdtrace/dt_link.c: Start to implement dt_modtext for ARM.
814* cmd/dtrace/dtrace.c: Sign extension fix for ARM/getopt.
813* driver/dtrace_isa.c: Fix use of previous_esp because it
disappears in later kernels.
812* driver/dcpc.c: Fix #elseif issue.
Sun Feb 10 00:43:12 2013 fox
811* Various: User-mode DTrace compiles on ARM (dtrace cmd runs
but does not currently get passed the USDT behavior); some
stuff stubbed out in libproc.
Kernel does not compile on ARM at present.
810* libdtrace/dt_link.c: Fix/placeholders for ARM.
809* linux/sys/elf_arm.h: New file.
808* tests/makefile: Build sys32 for ARM.
807* tools/libgcc.pl: Dont do any checks if on ARM.
Tue Feb 5 21:42:17 2013 fox
806* driver/dtrace_linux.c: Fix "pte" unref for <=2.6.24 kernels.
805* driver/xen.c: Avoid invoking Xen include file if we dont have Xen.
804* driver/vminfo.c: Conditionalise UNEVICTABLE_MLOCKFREED for 3.7
Mon Feb 4 21:19:52 2013 fox
803* driver/dtrace_linux.c: Fix for 2.6.18 kernel caused by
Xen call to set_pte_atomic.
802* linux/sys/regset.h: Fix for greg_t conflict with 3.7 kernel.
801* driver/xen.c: Fix compile issues on 2.6.32 which lack the Xen interface
we need.
Fri Jan 25 21:30:43 2013 fox
800* bug.sh: Remove the [email protected] address
Thu Jan 17 22:13:57 2013 fox
799* README: Fix one of the github addresses.
Wed Dec 19 22:50:45 2012 fox
798* libdtrace/dt_open.c: Change /usr/ccs/lib/cpp to "cpp".
Mon Dec 10 22:23:10 2012 fox
797* driver/intr.c: 'Fix' for i386 to avoid use of undef structures in
Xen hypercall. Not verified. But Apurba reported the issue.
796* libdtrace/dt_module.c: Fix for core dump on i386 when doing usdt.
Fri Nov 30 19:45:05 2012 fox
795* intr.c: Fix for xen on i386 (not currently supporting this).
Thu Nov 29 20:53:05 2012 fox
794* Add 'safe' support - make it work, but turn off by default.
You can see the setting in /proc/dtrace/stats.
echo safe=1 >/proc/dtrace/stats
to turn it on - in which case, probes whilst interrupts are
disabled, are silently dropped.
Tue Nov 27 22:44:19 2012 fox
793* driver/dtrace.c, driver/dtrace_linux.c: Add safe mode support,
but doesnt seem to fire. (See /proc/dtrace/stats to watch
the counters for dropped/safe probes).
792* libdtrace/dt_module.c: Ensure we give kernel stack
traces even if we dont load linux.ctf file.
Mon Nov 26 23:18:25 2012 fox
791* driver/dtrace_isa.c: Avoid GPF when doing
dtrace -n syscall:::'{stack();}'
since we have no stack frame to play with. Also, add
GPF protection in case we walk off end of stack.
Sun Nov 25 20:13:07 2012 fox
790* driver/dtrace_isa.c: Fix for stack() - we could panic the
kernel, or for some kernels, not provide a stack.
789* driver/intr.c, driver/intr_x86-64.S, driver/xen.c, driver/x_call.c
Attempt to get Xen IPI to work, but it wont. This means
using FBT or fast firing probes can result in kernel panics.
Tue Nov 13 21:59:44 2012 fox
788* driver/intr.c, driver/intr_x86-64.S: Fix Xen interrupt
patching, and conditionalise/verify we can compile and
run on non-Xen kernels.
Fri Nov 9 22:55:23 2012 fox
787* driver/intr_x86-64.S: Fix for Xen interrupts; handle
kernel traps properly for passthru. (fbt -- int3 and int1
now appear to work properly).
Sun Nov 4 21:35:49 2012 fox
786* taskq.c, dtrace_linux.c: Avoid GPF if we directly load the
driver.
785* driver/intr.c: Updates for Xen compatibility.
Sat Oct 20 22:29:22 2012 fox
784* driver/intr.c: Fix for CONFIG_PARAVIRT (Amazon EC2 instance)
Dont inline sgdt/sidt if in paravirt mode - the instructions
are not valid.
783* driver/*: Add wp_disable/wp_enable calls and stop using
memory_set_rw to turn off write protected pages as this
doesnt work in virtualised kernels (Amazon). Thanks
to Eric Chaves for giving me access to an EC2 instance
to debug the issues here.
782* driver/dtrace.c, libdtrace/dt_open.c dt_names.c, etc/io.d
Add initial support for the fds[] array. The call of
d_path() function is not done in a mutex free environment.
If you use this on the read/write/... syscalls, all should be
well, but calling it from low level context could deadlock
the CPU. This is an initial experiment.
Comment out the io.d stuff because it may cause dtrace to
fail on hosts where we dont have the full linux.ctf file.
Sun Oct 14 21:54:24 2012 fox
781* libdtrace/dt_parser.c: Allow use of variables stored
in the linux-`uname -r`.ctf file (eg cur_thread) without
prefixing with "linux`..."
780* driver/ctf_struct.c: Add <linux/fdtable.h> for etc/io.d
Tue Oct 9 22:07:16 2012 fox
779* ctf_struct.c: Add support for <linux/migrate.h> which can
cause ctfconvert to fail due to a missing structure(?)
(Dan Mick)
778* tools/mkport.pl: Add support for HAVE_LINUX_MIGRATE_H
Thu Aug 23 07:47:40 2012 fox
777* tools/mkport.c, libproc/common/Pcontrol.c:
Fix for PTRACE_O_TRACEEXEC which may not exist
in <sys/ptrace.h> (Centos 5.3).
776* driver/x_call.c: Fix for IPI on archlinux-3.4/i386
Wed Aug 22 23:57:50 2012 fox
775* driver/dtrace_linux.c, tools/load.pl: Remove some of the
legacy symbols as we dont need them anymore.
Mon Aug 20 22:03:03 2012 fox
774* driver/fbt_linux.c: Better fix for skipping .init section
of drivers loaded after dtrace - avoids paniccing if
we probe on them (eg 'dtrace -n fbt:isofs::').
773* driver/signal.c: Put in the missing assembler code for i386.
Sun Aug 19 16:05:01 2012 fox
772* scripts/dt.pl: Rename to dt.
771* scripts/dt.pl: Add 'dt func <pid>'
770* archive: 1.0145
769* libproc/common/Pcontrol.c: Some changes to Pxcreate to handle
parent/child sync with a forked child from 'dtrace -c cmd'.
Sat Aug 18 16:15:47 2012 fox
768* driver/signal.c, fasttrap_isa.c, dtrace_subr.c, and others:
Intercept process signal delivery. If we are inside the
scratch area for the PID provider, reset PC to the original
instruction. This stops user app core dumping on return from
a signal handler because we would return to the scratch area
but the scratch area will most likely be overwritten with
a later instruction.
Fri Aug 17 08:46:57 2012 fox
767* driver/x_call.c: Fix for Debian-6 - find any apic outlet to
invoke.
766* tools/mksyscall.pl: Fix for Debian-6.
765* systrace.c: Fixes for Debian-6.
Sat Aug 11 10:05:56 2012 fox
764* fasttrap_isa.c: Fix the last issue properly - 2 styles
of indexed instructions werent being handled
properly. Now they are.
763* archive: 1.0144
Thu Aug 9 22:48:18 2012 fox
762* fasttrap_isa.c, fasttrap.c: Fix handling of
41 ff 14 c4 callq *(%r12,%rax,8)
instruction.
Add private page for the scratch buffer trampoline.
Mon Aug 6 20:56:11 2012 fox
761* Archive: 1.0143
760* driver/systrace.c: Fix for 32b binaries on 64b kernel for
Centos/RedHat releases.
Sun Aug 5 11:50:41 2012 fox
759* tools/mkport.h: Fix for FUNC_DUMP_TRACE_ARGS on centos5.6.
758* dtrace_asm.c: dtrace_casptr: Add a check that target is writable
and avoid paniccing kernel when it isnt (eg syscall tracing,
caused by mem_set_writable code not working). Hm. Undo
this change - we can get deadlock if we trigger a violation.
Or something else - not sure what it is.
757* fasttrap_isa.c, dtrace_linux.c: When patching in PID provider
instructions, ensure page is executable.
Centos5.3 2.6.18-128.el5 fix
Sat Aug 4 15:16:00 2012 fox
756* cmd/ctfconvert: Doesnt depend on -lbfd
755* libdtrace/dt_link.c: Allow us to avoid deleting the temp file.
Fix file perms issue.
754* libdtrace/dt_subr.c: dt_alloc: Use calloc() and not malloc()
as this can cause bad ELF file generation.
753* linux/sys/regset.h: Reorder the amd64 registers to match
the interrupt trap, so that single stepping pid probes work
properly.
752* driver/fasttrap.c: Significant speed up for /proc/dtrace/fasttrap.
Not ideal or linear, but better than before.
Fri Aug 3 11:40:18 2012 fox
751* driver/intr_x86-64.S, intr_x86-32.S: Dont corrupt RAX register on
an INT3 trap. Was breaking pid provider/fasttrap.
Thu Aug 2 08:25:51 2012 fox
750* driver/x_call.c: xcall_init() Ensure xcalls[] is setup even
if no APIC (Centos 5.5 issue).
Wed Aug 1 15:24:01 2012 fox
749* libproc/common/Psymtab.c: Fix for _dl_initial_error_catch_tsd on
Centos 5.3.
748* driver/taskq.c: Fix for centos 5.3 (2.6.18-129) where invoking
workqueue callback derefs null ptr.
747* cmd/ctfconvert/tdata.c: Avoid core dump in tdesc_layouthash
if we have a struct/union with no members (fwd def/ref?)
Tue Jul 31 22:00:40 2012 fox
746* driver/taskq.c: Fix for centos 5 GPL function issue.
745* Psymtab.c: Fix for older kernels where AT_BASE auxv vector
is not defined, so couldnt use 'dtrace -n pidXXX:::' on them.
(Centos 5).
744* dtrace_linux.c: mem_set_writable: Fix (clflush) for centos
kernel.
Mon Jul 30 08:28:16 2012 fox
743* Archive: 1.0142
742* driver/dtrace_linux.c: Fix issue with determining data model of 32b
proc on 64b kernel.
741* ctl.c, ctf_struct.h: Build fixes for older kernels.
740* taskq.c: Add older kernel support.
Sun Jul 29 18:06:43 2012 fox
739* libproc/common/Psymtab.c: Fix for reading /proc/pid/auxv for
a 32b proc on a 64b kernel.
738* driver/dtrace_linux.c: dtrace_data_model: Implement this
for 64b systems running 32b binaries.
737* driver/dtrace_linux.c: Fix issue affecting 32b binaries
on 32b kernel (fasttrap miscomputing instr sizes).
Sat Jul 28 08:41:53 2012 fox
736* All drivers: Add ".owner = THIS_MODULE", to protect from
attempts to unload driver whilst still have open references.
735* prov_common.c: Add proc:::fault probe.
734* Psymtab.c: Fix last change; wasnt handling 64b binaries properly.
Fri Jul 27 13:27:25 2012 fox
733* Archive: 1.0141
732* libproc/common/Pcontrol.c: Fix for setting the model of
a spawned process (32 vs 64 bit).
731* driver/ctl.c: Temp comment out the rcu_read_lock calls.
730* driver/ctl.c: Avoid direct reference to find_task_by_vpid.
729* driver/ctl.c: Add permission checking and update comments.
728* driver/systrace.c: Bug fix for /proc/dtrace/syscall - SIGSEGV
and confusion on 32b kernel.
727* libproc/common/Pcontrol.c: Use the /dev/dtrace_ctl driver instead
of ptrace(). We can now use PID provider on stopped jobs or even
procs being debugged in a debugger.
Thu Jul 26 08:33:03 2012 fox
726* archive: 1.0140
725* x_call.c: fix the xcalls[][] array. Some draconian measures
for dtrace_ack_apic() to avoid crashing VirtualBox.
724* x_call.c: Dynamically allocate xcalls[][] array according
to CPUs available, not max possible, to reduce memory footprint.
723* x_call.c: Redo native_apic_write_mem, for maximum portability
across releases. May not be brilliant if we have machines
without APICs (embedded?) but lets worry about them when
we find them. Fix #pragma warning.
722* missing.c, dtrace_linux.c: Rename clflush() and call it
dtrace_clflush() to avoid kernel version conflicts.
721* liblinux.c/proc2.c: When getting proc status, handle suspended
procs.
Wed Jul 25 23:19:13 2012 fox
720* driver/taskq.c: Dont GPF if on older kernel and cannot find
__alloc_workqueue_key_ptr. Works on Ubuntu 8 (2.6.28)
719* driver/x_call.c: Fix up some portability issues. Getting difficult
to ensure this works on all kernels, so having to be more
draconian.
Tue Jul 24 22:45:32 2012 fox
718* driver/x_call.c: GPL fix for 2.6.28 (Ubuntu 8/32) kernel.
Mon Jul 23 23:32:39 2012 fox
717* driver/x_call.c: Fix compile issue for 2.6.28 kernel (Ubuntu 8)
Sun Jul 22 17:30:38 2012 fox
716* Archive: 1.0139
715* Various: Tidied up some compiler warnings.
714* taskq.c, taskq.h, dtrace_linux.c, dtrace.c, fasttrap.c,
Fix the PID provider. It may not be perfect and needs lots of
testing, but some basic stuff works. Added the taskq_create()
and timeout functions to aid in probe garbage collection.
Fri Jul 20 00:15:04 2012 fox
713* tools/get-deps-fedora.sh: Add in 'make'.
Sat Jul 14 08:32:08 2012 fox
712* fasttrap_isa.c: FASTTRAP_T_COMMON: Setup addr for the
trapped instruction. (Previously, we had a TODO() item)
711* Pcontrol.c: Pread_live: do ptrace(PTRACE_ATTACH)/waitpid to
read someone elses memory, even if we are root. Seems to
make pid provider work *much* better.
710* driver/systrace.c: Fix typo for ia32_execve.
Wed Jul 11 23:02:16 2012 fox
709* driver/fasttrap_linux.c: Oops. Forgot to implement the ioctl()
interface, so PID provider couldnt get off the ground.
708* tools/load.pl: Make /dev/fasttrap world read/writable (not sure if
this is safe - but fasttrap will do its own perms checkings).
707* liblinux/proc2.c: Stupid read() call for /proc/%d/exe wrong way around.
Tue Jul 10 23:28:21 2012 fox
706* liblinux/gmatch.c: Result of match was reversed. Stopped pid
provider from kicking in.
Sun Jul 8 16:53:33 2012 fox
705* driver/tcp.c: Add udp:::send and udp:::receive (crude).
704* dtrace_linux.c: Fix the pmd hacks.
703* tcp.c: Add the accept and send/receive probes.
Thu Jul 5 22:42:36 2012 fox
702* tcp.c: Add tcp::connect-established.
701* prov_common.c: Add prov_add_callback, so we can start handling
argument specific callbacks.
Wed Jul 4 16:03:51 2012 fox
700* systrace.c: Cater for x32 syscalls not being enabled.
Sun Jul 1 16:22:42 2012 fox
699* driver/dtrace_linux.c: Specialise last fix for 3.2/3.3 kernels.
3.4 kernels dont have same glitch in the header files.
698* driver/dtrace_linux.c: Fix for i386 3.2 and above kernels
in page table manipulation.
Fri Jun 29 07:23:53 2012 fox
697* tools/load.pl: ALlow insmod to be in /usr/bin
696* vminfo.c: Fix for 3.4 kernels.
695* systrace.c: Fix for 3.4 kernels.
Sat Jun 2 22:37:18 2012 fox
694* README: Update install instructions to run tools/get-deps.pl
Thu May 24 18:57:48 2012 fox
693* makefile: Dont fail on "make install" if build/linux.ctf not available.
692* dtrace_linux.c: Make par_alloc/par_free do something - remove the
stub, because without this, we dont get probes for modules.
691* x_call.c: Put in a warning if NCPU is too large - can cause
problems at driver load time (Centos 6.2 has NCPU==4096 which
equates to more than 40MB of memory for the xcall array).
Mon Apr 9 16:01:07 2012 fox
690* driver/sdt_linux.c: Avoid compile errors on 3.3 kernels.
Thu Mar 1 21:52:36 2012 fox
689* driver/x_call.c: Centos 4.7 change
688* driver/dtrace.c: Avoid native_read_pmc for now - we dont need it
anyway.
687* driver/mutex.c: Put in workaround for Centos 4.7/Ubuntu 10.x
Fri Feb 24 19:21:39 2012 fox
686* driver/vminfo.c: Use CONFIG_COMPACTION to avoid compile time errors.
Fri Feb 17 23:43:53 2012 fox
685* driver/x_call.c, driver/dtrace_linux.c: Changes to workaround
issues with accessing the GPL symbol apic.
Thu Feb 16 21:00:48 2012 fox
684* x_call.c: Make it GPL compliant.
Sat Feb 11 10:25:20 2012 fox
683* driver/dtrace_linux.h: Mark as CDDL driver.
682* driver/prov_common.c: Mark as CDDL.
681* Archive: 1.0138
680* libdtrace/dt_cc.c, dt_impl.h, dt_open.c,
driver/dtrace.c, uts/common/sys/dtrace.h:
Add two experimental actions, so I can play (test1() and test2()).
679* dtrace_linux.c: par_alloc: Remove temporary stub-out - we werent
providing fbt module probes.
Mon Feb 6 21:47:58 2012 fox
678* libdtrace/dt_pid.c: dt_pid_usdt_mapping: Dont call
pr_open/pr_ioctl (see comment in the code). This allows
us to dtrace against a USDT probe application.
677* cmd/dtrace/dtrace.c: Add some env var defns to the usage.
Sun Feb 5 10:18:55 2012 fox
676* driver/intr.c: Fix license.
675* liblinux/proc2.c: Fix to avoid leaving target USDT proc in
a stopped state. (We did this due to bugs in libproc handling
but we shouldnt even if we are buggy). Not detecting 't'
process state properly.
674* Archive: 1.0137
673* dtrace_linux.c: Fix clflush issue in <= 2.6.21 kernels
672* tools/mkport.pl: Possible fix for SMP_CALL_FUNCTION_SINGLE_ARGS for
2.6.18 kernel.
671* driver/dtrace.c, driver/fasttrap_linux.c: Rip out all the fasstrap
helpers when unloading the driver, so we dont panic on a reload
if a USDT proc is still running.
Wed Feb 1 20:14:09 2012 fox
670* x_call.c: Fix for 2.6.24 kernel in cpumask_t
669* intr.c, tools/mkport.pl: Remove private vmalloc_sync_all if kernel
supports it.
668* linux/sys/privregs.h, tools/mkport.pl: Add autodetect of
BX vs EBX register for i386/2.6.24 type kernels.
667* driver/cyclic_linux.c: Fix for 2.6.24/debian-4 kernel.
666* driver/intr.c: Fix commenting error for older kernels.
Tue Jan 31 20:31:24 2012 fox
665* driver/toxic.c: Allow "page_fault" on earlier kernels.
664* driver/intr.c: Avoid problems when store_gdt/store_idt are
not available.
663* intr.c: Avoid problem when swapper_pg_dir is a #define on older
kernels.
662* mkport.pl, dtrace_linux.c: Dont compile against atomic_notifier_chain_register
if its not available.
Mon Jan 30 20:33:20 2012 fox
661* Archive: 1.0136
660* driver/dtrace_linux.c: Move intr_init() so we do it last, so
we can maximise the effect of ensuring all page tables are in sync.
659* driver/intr.c: Solution for the big impossible problem. Call
vmalloc_sync_all if possible, else a half-hearted emulation.
(We could just copy vmalloc_sync_all from the kernel but its
GPL, so we will think about a better solution based
on the kernel one; only a problem for older i386 kernels).
658* driver/intr-x86-32.S: Ensure we setup %gs for kernels >= 2.6.31.
Else user space apps die, because %gs can be corrupted when
returning back to app.
657* driver/dtrace.c: Remove workaround for what I thought was a compiler
bug. Avoid dtrace/memcpy_with_error - this was working around the
wrong issue. If the page fault handler works properly, then these
two things were bogus.
Wed Jan 25 21:49:03 2012 fox
656* tools/tty.pl: Fix defunct process leakage.
Wed Jan 11 23:33:51 2012 fox
655* instr_linux.c: Add -ltr instructions.
Fri Jan 6 22:11:05 2012 fox
654* instr_linux.c: Add support for detecting rd/wr to GDT and writing
to CR3 register. (Trying to find where the page table gets set
in the kernel to debug the page_fault problem for i386).
Mon Jan 2 23:16:35 2012 fox
653* driver/instr_linux.c: Add support for SIDT instruction and fix
encoding for LIDT.
Sat Dec 31 00:01:52 2011 fox
652* Archive: 1.0.135
651* driver/intr.c: Move the interrupt/idt code to its own file.
During driver init, swap out the old idt, make updates and
swap back in the new idt. Avoids funny crashes on driver
reload.
Added /proc/dtrace/idt driver to see the IDT table.
650* Archive: 1.0134
649* dtrace_linux.c: set_idt_entry: Grab the existing IDT
entry and just set the new address; dont lose/change the
dpl or type of the gate.
648* printf.c, dtrace_linux.c: Move set_console() to printf.c
647* makefile: Set LANG=C to avoid UTF-8 output from gcc.
Thu Dec 29 10:23:49 2011 fox
646* driver/intr_x86-32.S: Kernels >= 2.6.31 save the %GS
register on the stack, so we need to do this so that pt_regs
agrees. This fixes the horror of Ubuntu 11.10/i686 not
working properly.
Tue Dec 27 15:42:06 2011 fox
645* tools/get-deps.pl: Fix for Ubuntu 11.10/i686 - very broken
default install (missing /usr/include/sys).
644* linux/sys/elftypes.h: Fix for Ubuntu 11.10/i686.
643* tests/makefile: Handle 32-bit only system
Sun Dec 25 00:11:37 2011 fox
642* prov_common.c: Fire for all matching probes, not just the
first one, so that proc:::create and proc:::start will fire
together.
641* prov_common.c: Add support for
proc:::create - Fires when a new process is created.
proc:::start - Fires when process is created (same as create)
proc:::end - Fires on process termination
640* dtrace/dtrace_subr.c: When looking at the invop handlers, broadcast
the breakpoint to all invop handlers. This allows two providers
to sit on the same instruction.
639* fasttrap.c: Basic /proc/dtrace/fasttrap support.
Thu Dec 22 14:43:40 2011 fox
638* driver/intr_x86-32.S/intr_x86-64.S: We werent allowing
user breakpoint traps to be detected by USDT. This works
again.
637* Archive: 1.0133
636* cmd/dtrace/dtrace.c: Add support for -arch [i386|x86_64], similar
to Apple's dtrace.
635* usdt/c/makefile: Fix so that build/simple-c can run from anywhere.
634* libdtrace/dt_link.c: process_obj: For ELF32, write the SHT_REL entry
back to the appropriate section, not the SHT_RELA section. Seems
like a Solaris symmetry bug.
We now get USDT probes, but nobody is garbage collection them. Strange....
Wed Dec 21 09:19:53 2011 fox
633* dtrace.c: Temp remove the module-loaded chain because of fault
on a reload.
632* dtrace_linux.c: prfind(): Map pid to pid structure, and then
lookup.
631* ctl.c, driver_linux.c: Ensure fn_pid_task is setup, so prfind
doesnt die on USDT probe.
630* sys/dtrace.h: Fix for 32b build.
629* cmd/instr.c: Fix size_t issue.
Mon Dec 19 21:48:57 2011 fox
628* ctf_struct.c: Avoid referring to user32 struct so we can
compile on RH4 kernel.
627* dtrace_asm.c: Avoid compiler issue for old gcc/linux kernels
for VMREAD instruction.
Sun Dec 18 00:17:43 2011 fox
626* fbt_linux.c: Fix the arg0, .., arg4 args. We were relying
on solaris stack layout and not linux. (Thanks Nigel for pointing
this out).
Sat Dec 17 13:53:47 2011 fox
625* Archive: 1.0132
Fri Dec 16 20:27:53 2011 fox
624* sys/systm.h: Use correct sysconf() mapping #defines.
Mon Dec 12 23:58:33 2011 fox
623* dtrace.c, dtrace.h, dtrace_impl.h: Upgrade to Jolent 201111
extras. (ECB delayed removal, vmreg support).
Sun Dec 11 21:23:47 2011 fox
622* mutex.c: Call scheduler periodically to avoid deadlock when
number of dtrace's exceeds number of physical cpus.
Fri Dec 9 20:01:25 2011 fox
621* tools/tail.pl: Tool to do tail -f on any file, but specific
char special device files. Defaults to /proc/dtrace/trace.
620* Archive: 1.0131
619* dtrace.c: Added some monitoring around the kmem_free in
dtrace_state_destroy. Not needed, but something to watch.
618* x_call.c: Whilst priming the other cpus for action, attempt
to drawin any pending call against ourselves. Reduce the
poll time (ack_wait) a little, to try and gain better performance.
617* mutex.c: Dont disable interrupts for interrupt level mutexes.
(And, by implication, we dont need to restore them). Parameterise
this change.
Every 500m iterations, dump a "taking a long time message". Havent
seen this get hit.
Thu Dec 8 21:44:49 2011 fox
616* toxic.c: Re-enable more of the functions. We shouldnt have the old
problems anymore.
Wed Dec 7 20:57:52 2011 fox
615* tools/cpustuck.pl: Simple tool to look for stuck cpus.
Sun Dec 4 12:03:45 2011 fox
614* dtrace.c: Tone down the teardown logic to avoid two
dtraces fighting each other in a death match.
613* mutex.c: Dont break out of mutex_enter, and dont dump
stacks, as this can lead to inter-cpu corruption and assertion
failure.
612* dtrace.c: When hitting an assertion/panic issue, avoid
problems if another panic hits at the same time, to avoid
frantic console scrolling (we only allow the message once).
611* Archive: 1.0130
610* mutex.c: Dtrace is *NOT* expecting the mutexes to be recursive.
By disabling recursion, we fix the "dtrace -l & dtrace -l &"
issue which would cause deadlock or assertions. We increased
the break-out check - we need to turn this off. Under very
heavy load (eg two copies of fbt::: running), the mutex
might believe somethings broke and panic dtrace, effectively
disabling it.
609* dtrace_subr.c: Dump out the hdlr chain so we can diagnose
if fbt is not at the front of the list.
Sat Dec 3 08:56:10 2011 fox
608* dtrace_linux.c, fbt_linux.c: Arrange for fbt to be first in the
invop chain (optimisation).
607* x_call.c: Remove the per-interrupt xcall state. I think it was
potentially wrong, as we were using our interrupt state instead
of the other cpu state. I am not sure it matters, because
we try to call xslave2 during fast-teardown to empty any
pending buffers, so the amount of contention should be reduced.
606* instr_linux.c: Small parsing optimisation and opcode name fix
for repnz.
605* instr_linux.c: Add ud2 instructions to the INSTR provider. Would allow us to
take a probe when a BUG_ON is hit in the kernel. (The
kernel will kill the calling process anyhow and dump a stack,
but at least we could do something useful if we were interested).
604* prov_common.c: We were incorrectly assuming the file/line info
for the BUG_ON/ud2 instruction followed the instruction. This
caused random disassembly failure leading to problems when that
code was executed. (FC16 flush_exec_old function would kill
new processes).
Avoid print mangling when debug enabled for tracing disassembler.
Wed Nov 30 22:12:40 2011 fox
603* fbt_linux.c: Add an overrun indicator to /proc/dtrace/fbt ("*")
Tue Nov 29 09:00:40 2011 fox
602* cmd/instr: New utility for getting instruction encodings.
601* cyclic_linux.c: Avoid race conditions during timer closedown.
We might have the timer active whilst trying to kill it, and
corrupt memory leading to a panic later on.
600* dtrace_linux.c: Search fbt probes before instr, since we are likely