Page MenuHomeFreeBSD
Feed Advanced Search

Jan 10 2021

kp accepted D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..

Still happy with this. I'll rebase the riscv fixes on top of this once it gets committed and push them as wel.

Jan 10 2021, 1:45 PM · arm64, DTrace
rwatson added a comment to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..

Candidate commit message (will update Reviewed by notes as needed):

Jan 10 2021, 12:34 PM · arm64, DTrace
rwatson updated the diff for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..

Updates to candidate commit message.

Jan 10 2021, 12:32 PM · arm64, DTrace
rwatson added inline comments to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Jan 10 2021, 9:50 AM · arm64, DTrace
rwatson updated the diff for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
  • Since non-aarch64 haven't required a memcpy() exclusion in the past, don't exclude it now.
Jan 10 2021, 9:48 AM · arm64, DTrace
rwatson updated the diff for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..

Various fixes to the DTrace FBT provider on FreeBSD/arm64:

Jan 10 2021, 9:30 AM · arm64, DTrace

Jan 4 2021

jrtc27 added inline comments to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Jan 4 2021, 1:53 AM · arm64, DTrace

Jan 1 2021

markj accepted D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Jan 1 2021, 8:59 PM · arm64, DTrace
rwatson added inline comments to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Jan 1 2021, 1:25 PM · arm64, DTrace

Dec 27 2020

andrew added inline comments to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Dec 27 2020, 1:53 PM · arm64, DTrace
kp accepted D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Dec 27 2020, 1:34 PM · arm64, DTrace

Dec 26 2020

lwhsu added a reviewer for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64.: markj.
Dec 26 2020, 5:31 PM · arm64, DTrace
rwatson added a reviewer for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64.: kp.
Dec 26 2020, 5:15 PM · arm64, DTrace

Dec 24 2020

rwatson updated the summary of D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64..
Dec 24 2020, 7:37 PM · arm64, DTrace
rwatson added a reviewer for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64.: andrew.
Dec 24 2020, 7:32 PM · arm64, DTrace
lwhsu changed the repository for D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64. from rS FreeBSD src repository - subversion to rG FreeBSD src repository.
Dec 24 2020, 5:32 PM · arm64, DTrace
rwatson added projects to D27766: Various changes to DTrace FBT to avoid crashed on FreeBSD/arm64.: DTrace, arm64.
Dec 24 2020, 5:31 PM · arm64, DTrace

Feb 5 2020

bdragon closed D22403: [PowerPC] ELFv2 libdtrace support (userland side).
Feb 5 2020, 7:40 PM · DTrace, PowerPC
gnn accepted D22403: [PowerPC] ELFv2 libdtrace support (userland side).

LGTM

Feb 5 2020, 7:26 PM · DTrace, PowerPC

Nov 18 2019

jhibbits accepted D22403: [PowerPC] ELFv2 libdtrace support (userland side).
Nov 18 2019, 3:53 PM · DTrace, PowerPC
markj accepted D22403: [PowerPC] ELFv2 libdtrace support (userland side).
Nov 18 2019, 3:45 PM · DTrace, PowerPC

Nov 17 2019

bdragon updated the diff for D22403: [PowerPC] ELFv2 libdtrace support (userland side).

Actually initialize uses_funcdesc properly.

Nov 17 2019, 6:59 PM · DTrace, PowerPC
jhibbits added inline comments to D22403: [PowerPC] ELFv2 libdtrace support (userland side).
Nov 17 2019, 4:52 AM · DTrace, PowerPC

Nov 16 2019

bdragon created D22403: [PowerPC] ELFv2 libdtrace support (userland side).
Nov 16 2019, 3:58 AM · DTrace, PowerPC

May 20 2019

jhibbits removed a member for DTrace: jhibbits.
May 20 2019, 7:51 PM

Aug 6 2018

lwhsu added a watcher for DTrace: lwhsu.
Aug 6 2018, 12:10 AM

Aug 4 2018

me_reviews.freebsd_lelf.lu added a watcher for DTrace: me_reviews.freebsd_lelf.lu.
Aug 4 2018, 11:20 PM

May 12 2018

markj closed D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.
May 12 2018, 3:35 PM · arm64, DTrace

May 9 2018

markj added a comment to D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

Given the simplicity of this unwinding code, I think it's reasonable to just keep it inline like we do on amd64. DTrace reimplements quite a lot of "standard" code for the same reason as we do here.

May 9 2018, 2:56 PM · arm64, DTrace

May 8 2018

domagoj.stolfa_gmail.com updated the diff for D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

Preemptively remove a redundant check for INKERNEL(fp).

May 8 2018, 9:23 PM · arm64, DTrace
domagoj.stolfa_gmail.com added a comment to D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

Why not just exclude it in fbt_provide_module_function? I'd prefer we keep the unwinding code together, maybe with a comment that it may be called from such a context.

May 8 2018, 9:22 PM · arm64, DTrace
andrew added a comment to D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

Why not just exclude it in fbt_provide_module_function? I'd prefer we keep the unwinding code together, maybe with a comment that it may be called from such a context.

May 8 2018, 9:15 PM · arm64, DTrace
domagoj.stolfa_gmail.com added a comment to D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

however, in the future a patch that enabled instrumentation of inlined functions could accidentally break DTrace on aarch64.

Was the problem found while working on such a patch? :)

May 8 2018, 8:55 PM · arm64, DTrace
markj accepted D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

however, in the future a patch that enabled instrumentation of inlined functions could accidentally break DTrace on aarch64.

May 8 2018, 8:53 PM · arm64, DTrace
domagoj.stolfa_gmail.com updated the summary of D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.
May 8 2018, 8:51 PM · arm64, DTrace
manu accepted D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.

Ok for me, also tested on pine64

May 8 2018, 8:41 PM · arm64, DTrace
domagoj.stolfa_gmail.com created D15359: DTrace aarch64: Avoid calling unwind_frame() in the probe context.
May 8 2018, 8:37 PM · arm64, DTrace

Apr 27 2018

kpraveen.lkml_gmail.com added a watcher for DTrace: kpraveen.lkml_gmail.com.
Apr 27 2018, 9:49 AM

Apr 13 2018

tychon closed D14656: Add SDT probes to the VMX VMexit interface.
Apr 13 2018, 5:23 PM · DTrace, bhyve
tychon accepted D14656: Add SDT probes to the VMX VMexit interface.
Apr 13 2018, 5:20 PM · DTrace, bhyve

Apr 12 2018

grehan accepted D14656: Add SDT probes to the VMX VMexit interface.

I think this should be fine. Can always be tweaked later.

Apr 12 2018, 4:37 PM · DTrace, bhyve
domagoj.stolfa_gmail.com added a comment to D14656: Add SDT probes to the VMX VMexit interface.

Is this good to land? Thanks!

Apr 12 2018, 4:31 PM · DTrace, bhyve

Mar 28 2018

jhb added a comment to D14656: Add SDT probes to the VMX VMexit interface.

Seems ok to me.

Mar 28 2018, 5:46 PM · DTrace, bhyve
domagoj.stolfa_gmail.com added a comment to D14656: Add SDT probes to the VMX VMexit interface.

Should I make any more changes for this to land? As an aside note: I've tried to make the interface as simple as possible to use with the args[0-2] being consistent.

Mar 28 2018, 3:11 PM · DTrace, bhyve

Mar 18 2018

grehan added a reviewer for D14656: Add SDT probes to the VMX VMexit interface: tychon.

Adding Tycho to this.

Mar 18 2018, 2:58 AM · DTrace, bhyve

Mar 11 2018

domagoj.stolfa_gmail.com created D14656: Add SDT probes to the VMX VMexit interface.
Mar 11 2018, 6:21 PM · DTrace, bhyve

Jan 12 2018

markj closed D13877: DTrace: Add jailname/jid builtins.
Jan 12 2018, 8:00 PM · DTrace
markj accepted D13877: DTrace: Add jailname/jid builtins.

Thanks. I'll commit this later tonight.

Jan 12 2018, 5:37 PM · DTrace
domagoj.stolfa_gmail.com updated the diff for D13877: DTrace: Add jailname/jid builtins.

Address the comments by markj@ and add tests in safety/ for jailname and jid.

Jan 12 2018, 5:15 PM · DTrace
markj accepted D13877: DTrace: Add jailname/jid builtins.

Looks ok to me, thanks. Did you end up writing test cases for safety/ as we discussed on IRC?

Jan 12 2018, 4:17 PM · DTrace
dteske accepted D13877: DTrace: Add jailname/jid builtins.

After you explained that zonename is for compatibility, making it easier to port scripts from Solaris, this seems like a good change. Thank you for you hard work. Cheers!

Jan 12 2018, 2:43 PM · DTrace
domagoj.stolfa_gmail.com updated the diff for D13877: DTrace: Add jailname/jid builtins.

Update the diff to add more context. No actual code was changed.

Jan 12 2018, 2:01 PM · DTrace
domagoj.stolfa_gmail.com added inline comments to D13877: DTrace: Add jailname/jid builtins.
Jan 12 2018, 1:13 PM · DTrace
domagoj.stolfa_gmail.com updated the summary of D13877: DTrace: Add jailname/jid builtins.
Jan 12 2018, 1:11 PM · DTrace
domagoj.stolfa_gmail.com added a comment to D13877: DTrace: Add jailname/jid builtins.

Tracing on a per-jail basis using a predicate was already possible (example below):

someprobe /curthread->td_proc->p_ucred->cr_prison->pr_id == $1/
{
        /* some actions */
}

That's true, however, this exposes a stable interface that people can use without following pointers in the D script and instead simply calling into a builtin variable. I'd imagine this is the same reason why you would want to have execname, errno, uid, gid and others, as they can also be accessible via other, more primitive builtins.

Don't get me wrong, I like the analog to Solaris's zonename and thus think jailname and jid are good additions.

I just wanted to point out that curthread already gives us access to far more details than the few given at the top-level.

Programs like "dwatch" (reviews.freebsd.org/D10006) make it possible to access not-only curthread details but the details of the parent, grandparent, and ancestor process(es), and thus the ability to trace a jail is neither novel nor unique.

If you're ever looking for inspiration on other top-level variables that might be nice-to-haves without having to crawl curthread->td_proc (as dwatch does), give dwatch a trial run.

Jan 12 2018, 1:07 PM · DTrace
dteske requested changes to D13877: DTrace: Add jailname/jid builtins.

I just noticed that the ifdef for solaris was removed, resulting in the declaration of zonename. Was this intentional, and if-so, why?

Jan 12 2018, 1:06 PM · DTrace
dteske added a comment to D13877: DTrace: Add jailname/jid builtins.

Tracing on a per-jail basis using a predicate was already possible (example below):

someprobe /curthread->td_proc->p_ucred->cr_prison->pr_id == $1/
{
        /* some actions */
}

That's true, however, this exposes a stable interface that people can use without following pointers in the D script and instead simply calling into a builtin variable. I'd imagine this is the same reason why you would want to have execname, errno, uid, gid and others, as they can also be accessible via other, more primitive builtins.

Jan 12 2018, 1:04 PM · DTrace

Jan 11 2018

domagoj.stolfa_gmail.com added a comment to D13877: DTrace: Add jailname/jid builtins.

Tracing on a per-jail basis using a predicate was already possible (example below):

someprobe /curthread->td_proc->p_ucred->cr_prison->pr_id == $1/
{
        /* some actions */
}
Jan 11 2018, 11:56 PM · DTrace
dteske added a comment to D13877: DTrace: Add jailname/jid builtins.

Tracing on a per-jail basis using a predicate was already possible (example below):

Jan 11 2018, 11:47 PM · DTrace
domagoj.stolfa_gmail.com updated the summary of D13877: DTrace: Add jailname/jid builtins.
Jan 11 2018, 10:50 PM · DTrace
domagoj.stolfa_gmail.com created D13877: DTrace: Add jailname/jid builtins.
Jan 11 2018, 10:48 PM · DTrace

Mar 27 2017

dteske added a member for DTrace: dteske.
Mar 27 2017, 6:43 PM

Feb 23 2017

gnn accepted D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
Feb 23 2017, 6:08 PM · ARM, DTrace
mmel accepted D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
Feb 23 2017, 2:14 PM · ARM, DTrace
mmel added a comment to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().

Perfect :)
By my opinion, kernel should call dtrace_trap_func () only in unresolvable kernel trap case, as alternative to panic.
Something like: oups, dtrace probe causes panic, recovery me.

Feb 23 2017, 2:13 PM · ARM, DTrace
graeme.jenkinson_cl.cam.ac.uk updated the diff for D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().

Confirmed that calling dtrace_trap_func from abort_fatal() is correct (my mistake).

Feb 23 2017, 1:33 PM · ARM, DTrace
graeme.jenkinson_cl.cam.ac.uk added a comment to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
In D9701#201579, @meloun-miracle-cz wrote:

In my example a malformed script results in a memory access to 0x02. The resulting translation fault brings the system down. This should not happen.

Yes, due to missing FAULT_TRAN_L[1][2]: case in dtrace_trap().

dtrace_trap() tests whether the system is in probe context, by checking the flag cpu_core[curcpu].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT. If this is set the translation fault should not be handled by the normal code path, instead the DTrace error probe should fire and the DTrace script resume processing.

In the original code dtrace_trap() was called from abort_fatal(). abort_fatal() is never called for translation faults (or alignment faults). It would be possible to populate the aborts array with handlers that call dtrace_trap() infor L1 and L2 translation faults and alignment faults, but I think that this is a bit messy.

I don't agree here. All fatal traps ends in abort_fatal(), including all translation or alignment faults.
Kernel mode FAULT_TRAN_L[1][2] traps calls abort_fatal() at line 501.

Other architectures handling dtrace_trap() immediately on entering the trap handler (I'll expand on this point when replying to the other comment).

But other architectures doesn't emulates access or modify bits in SW. In peaks, quadcore ARM can easily get over 100k/sec of traps, filtered down (by pmap_fault()) to 3~5 k of 'real' ones.

But again, are you're really sure that calling dtrace probe for trap caused by swapped out page(for example) and thus fully covered by vm_fault() is right one?
In other words, can dtrace probe handle these 'false alarms' ?
In my opinion no, at least not on ARM.

In any case, I haven't a single problem if you put dtrace hook anywhere behind the line 352.

Feb 23 2017, 12:40 PM · ARM, DTrace
mmel added a comment to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().

In my example a malformed script results in a memory access to 0x02. The resulting translation fault brings the system down. This should not happen.

Yes, due to missing FAULT_TRAN_L[1][2]: case in dtrace_trap().

Feb 23 2017, 11:38 AM · ARM, DTrace
graeme.jenkinson_cl.cam.ac.uk added a comment to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
In D9701#201533, @meloun-miracle-cz wrote:

Can you be, please, little more specific for
"abort_handler - didn't call the dtrace_trap() function early enough to handle faults caused by DTrace " ?

Which faults are not handled if KDTRACE_HOOKS is on original location?
I'm only curious here, and my knowledge of DTRACE are very limited. But are you sure that DTRACE wants to see faults, possibly handled by vm_fault()? Or by pcb_onfault()... ?

Feb 23 2017, 9:19 AM · ARM, DTrace
mmel added inline comments to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
Feb 23 2017, 6:31 AM · ARM, DTrace
mmel added a comment to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().

Can you be, please, little more specific for
"abort_handler - didn't call the dtrace_trap() function early enough to handle faults caused by DTrace " ?

Feb 23 2017, 5:36 AM · ARM, DTrace

Feb 21 2017

andrew added inline comments to D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
Feb 21 2017, 2:01 PM · ARM, DTrace
andrew added a reviewer for D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler(): ARM.
Feb 21 2017, 12:19 PM · ARM, DTrace
graeme.jenkinson_cl.cam.ac.uk retitled D9701: Errors caused by DTrace are not correctly handled by ARMv6 abort_handler() from to Errors caused by DTrace are not correctly handled by ARMv6 abort_handler().
Feb 21 2017, 11:55 AM · ARM, DTrace

Feb 18 2017

bkidney_briankidney.ca added a watcher for DTrace: bkidney_briankidney.ca.
Feb 18 2017, 12:53 AM

Feb 3 2017

gnn closed D9051: Replacement for DTrace's RAND subroutine by committing rS313176: Replace the implementation of DTrace's RAND subroutine for generating.
Feb 3 2017, 10:26 PM · DTrace

Feb 2 2017

domagoj.stolfa_gmail.com added a member for DTrace: domagoj.stolfa_gmail.com.
Feb 2 2017, 5:58 PM

Feb 1 2017

bcr added a watcher for DTrace: bcr.
Feb 1 2017, 8:48 PM
gnn added a member for DTrace: gnn.
Feb 1 2017, 8:47 PM

Jan 13 2017

markj accepted D9051: Replacement for DTrace's RAND subroutine .
Jan 13 2017, 6:21 PM · DTrace
gnn accepted D9051: Replacement for DTrace's RAND subroutine .
Jan 13 2017, 3:27 PM · DTrace
graeme.jenkinson_cl.cam.ac.uk updated the diff for D9051: Replacement for DTrace's RAND subroutine .

Review comments addressed.

Jan 13 2017, 10:12 AM · DTrace

Jan 6 2017

markj accepted D9051: Replacement for DTrace's RAND subroutine .

This seems fine to me - aside from the licensing, my comments are all style nits.

Jan 6 2017, 1:56 AM · DTrace

Jan 5 2017

graeme.jenkinson_cl.cam.ac.uk retitled D9051: Replacement for DTrace's RAND subroutine from to Replacement for DTrace's RAND subroutine .
Jan 5 2017, 6:56 PM · DTrace

Oct 3 2016

jonathan added a watcher for DTrace: jonathan.
Oct 3 2016, 12:54 AM

Aug 7 2016

badger added a member for DTrace: badger.
Aug 7 2016, 7:03 PM

Jul 28 2016

dnelson_1901_yahoo.com added a watcher for DTrace: dnelson_1901_yahoo.com.
Jul 28 2016, 4:55 AM

Jan 27 2016

rpaulo removed a member for DTrace: rpaulo.
Jan 27 2016, 6:15 AM

Jul 25 2015

markj abandoned D2994: lockstat: use a reader/writer flag for acquire and release probes.

This was committed.

Jul 25 2015, 2:07 AM · DTrace
markj abandoned D2995: lockstat: fix spurious rw-spin events.

This was committed.

Jul 25 2015, 2:07 AM · DTrace

Jul 19 2015

markj closed D2993: lockstat: reimplement probes using SDT(9) by committing rS285703: Implement the lockstat provider using SDT(9) instead of the custom provider.
Jul 19 2015, 10:14 PM · DTrace

Jul 7 2015

gnn accepted D2993: lockstat: reimplement probes using SDT(9).
Jul 7 2015, 11:12 AM · DTrace

Jul 5 2015

markj updated the diff for D2994: lockstat: use a reader/writer flag for acquire and release probes.
  • Fix the !KDTRACE_HOOKS build.
Jul 5 2015, 6:36 AM · DTrace
markj updated the diff for D2993: lockstat: reimplement probes using SDT(9).
  • Fix the !KDTRACE_HOOKS build.
Jul 5 2015, 6:32 AM · DTrace
markj added a reviewer for D2995: lockstat: fix spurious rw-spin events: avg.
Jul 5 2015, 2:57 AM · DTrace
markj added a reviewer for D2994: lockstat: use a reader/writer flag for acquire and release probes: avg.
Jul 5 2015, 2:56 AM · DTrace
markj added a reviewer for D2993: lockstat: reimplement probes using SDT(9): avg.
Jul 5 2015, 2:56 AM · DTrace

Jun 30 2015

hiren closed D2950: Add missing DTrace scripts that exist in the source tree to the Makefile for install.

Fixed in r284964

Jun 30 2015, 6:25 PM · DTrace
markj accepted D2950: Add missing DTrace scripts that exist in the source tree to the Makefile for install.
Jun 30 2015, 6:14 PM · DTrace
hiren reclaimed D2950: Add missing DTrace scripts that exist in the source tree to the Makefile for install.
Jun 30 2015, 6:09 PM · DTrace