Page MenuHomePhabricator

dberris (Dean Michael Berris)
Software Engineer @ Google

Projects

User does not belong to any projects.

User Details

User Since
Feb 20 2014, 7:30 PM (291 w, 4 h)

Recent Activity

Tue, Aug 27

dberris accepted D66561: [X86] Remove encoding information from the TAILJMP instructions that are lowered by MCInstLowering. Fix LowerPATCHABLE_TAIL_CALL to also convert them to regular JMP/JCC instructions.

LGTM from the XRay parts.

Tue, Aug 27, 2:15 AM · Restricted Project
dberris accepted D61758: [driver][xray] fix the macOS support checker by supporting -macos triple in addition to -darwin.

LGTM -- apologies for the delay, I hope this isn't too late.

Tue, Aug 27, 2:00 AM · Restricted Project, Restricted Project
dberris added a comment to D63973: [MachineVerifier] Improve checks of target instructions operands..

Thanks, this LGTM. I quickly looked at the X86 tests, it seems that PATCHABLE_EVENT_CALL and PATCHABLE_TYPED_EVENT_CALL are always created with a register but expect immediates in Target.td. I'm not sure what was the intention so I'll leave it to @dberris.

Tue, Aug 27, 1:45 AM

Sun, Aug 25

dberris added a comment to D66561: [X86] Remove encoding information from the TAILJMP instructions that are lowered by MCInstLowering. Fix LowerPATCHABLE_TAIL_CALL to also convert them to regular JMP/JCC instructions.

I don't see the XRay specific changes... is there something I specifically need to look at here? Looks like the patchable tail call stuff is untouched.

Sun, Aug 25, 7:51 PM · Restricted Project

Jun 25 2019

dberris accepted D61946: [xray] Remove usage of procid_t.

LGTM -- really sorry for the delay here, for some reason I didn't get to this earlier. :(

Jun 25 2019, 11:43 PM · Restricted Project

Jun 23 2019

dberris accepted D63658: [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.*.

LGTM

Jun 23 2019, 8:21 PM · Restricted Project, Restricted Project

Apr 25 2019

dberris accepted D61016: [lit][tests]Add libc++ to link XRay test cases if libc++ is used to build CLANG.

LGTM -- thanks for looking into this!

Apr 25 2019, 7:18 PM · Restricted Project

Feb 27 2019

dberris planned changes to D56383: [XRay][tools] Use symbols instead of function id.

Gentle ping for author, has this landed or still in the backlog? (If it's landed can you attach the commit and close it, please? Just trying to to avoid diffs on Phab going stale.)

Feb 27 2019, 2:40 PM · Restricted Project

Feb 26 2019

dberris added a comment to D58621: [XRay][tools] Pack XRayRecord - reduce memory footprint by a third. (RFC).

This is a RFC because of the uint8_t CPU change.
That chance needs discussing.

So, this is an accident of history, which should be changed, but to the other direction. I've learned some time ago that it turns out there are some platforms that can have enough CPU IDs which can't be represented by a uint8_t. For future-proofing, we really should change this to be larger (uint16_t) and change basic mode to store 16-bit CPU IDs.

Boo :)

Boo indeed. :)

Unfortunately that won't just cost that one extra byte, it will have ripple effect on the padding in this struct.
I'm not sure as to exact numbers.

I like the idea of reducing top-line memory requirements, but it shouldn't be at the cost of functionality. The current state is a bug that we're only using 8 bits for the CPU ID.

No, i totally understand.
That is why i said it's RFC and is only valid if it is actually
only ever 8 bits. (which it is, but only due to the bug elsewhere)
I think this is still worth it even with 16-bit CPU, i'll take a look.

Now, an alternative here is to migrate the Basic Mode implementation to use a more compact log record (i.e. using the FDR mode format), and use a different converter approach, one that doesn't require reconstituting the whole Trace consisting of XRayRecord instances. The FDR log loading libraries/framework allow us to do this now (see llvm-xray fdr-dump). This is a more intensive project but one that isn't terribly hard to accomplish. If you'd like to take that on, I'd be happy to review patches going in that direction instead (really the only difference between the current basic mode implementation and the FDR mode implementation is that, basic mode threads returning a buffer to the queue will write out the contents before returning the buffer to the central buffer queue). In that process we can migrate FDR mode to use 16-bit CPU IDs.

So it's basically three co-dependent steps:

  1. Teach xray convert to also work on FDR input
  2. Afterwards, switch the compiler-rt X-Ray basic log to output FDR log format.
  3. Finally, fix the truncation of CPU id in the compiler-rt xray code
Feb 26 2019, 1:17 PM · Restricted Project

Feb 25 2019

dberris added a comment to D58621: [XRay][tools] Pack XRayRecord - reduce memory footprint by a third. (RFC).

This is a RFC because of the uint8_t CPU change.
That chance needs discussing.

So, this is an accident of history, which should be changed, but to the other direction. I've learned some time ago that it turns out there are some platforms that can have enough CPU IDs which can't be represented by a uint8_t. For future-proofing, we really should change this to be larger (uint16_t) and change basic mode to store 16-bit CPU IDs.

Boo :)

Feb 25 2019, 5:18 PM · Restricted Project
dberris added a comment to D58621: [XRay][tools] Pack XRayRecord - reduce memory footprint by a third. (RFC).

This is a RFC because of the uint8_t CPU change.
That chance needs discussing.

Feb 25 2019, 1:15 PM · Restricted Project

Feb 24 2019

dberris accepted D58584: [XRay][tools] Revert "Use Support/JSON.h in llvm-xray convert".

What I wish existed was a stateful JSON output stream implementation instead of the build-everything-in-memory model. Maybe someday. :)

Feb 24 2019, 1:49 PM · Restricted Project

Feb 12 2019

dberris accepted D58144: [xray][tests][RHDTS] Add -lstdc++ after LLVM libs, resolving link error with RHDTS.

LGTM

Feb 12 2019, 2:42 PM · Restricted Project, Restricted Project

Feb 11 2019

dberris accepted D58086: [CMake][XRay] Silence llvm-config error when checking library support.

LGTM

Feb 11 2019, 5:03 PM · Restricted Project, Restricted Project

Jan 31 2019

dberris accepted D57521: [CMake] External compiler-rt-configure requires LLVMTestingSupport when including tests.

LGTM

Jan 31 2019, 2:09 PM · Restricted Project, Restricted Project

Jan 24 2019

dberris accepted D57181: Fix XRayTest link on FreeBSD (and likely NetBSD too).

LGTM

Jan 24 2019, 4:57 PM

Jan 17 2019

dberris accepted D56797: xray: Add missing header to list of installed headers..

LGTM -- thanks! Yes, this should have been public all along.

Jan 17 2019, 1:43 AM

Jan 7 2019

dberris updated the diff for D56244: [XRay][docs] XRay Framework Usage Guide.

More updates to address some comments.

Jan 7 2019, 9:26 PM
dberris added inline comments to D56244: [XRay][docs] XRay Framework Usage Guide.
Jan 7 2019, 9:07 PM
dberris updated the diff for D56244: [XRay][docs] XRay Framework Usage Guide.

Address comments by @greened.

Jan 7 2019, 9:07 PM
dberris created D56383: [XRay][tools] Use symbols instead of function id.
Jan 7 2019, 3:44 AM · Restricted Project

Jan 3 2019

dberris updated the diff for D56244: [XRay][docs] XRay Framework Usage Guide.

Update description.

Jan 3 2019, 6:46 PM

Jan 2 2019

dberris updated the diff for D56244: [XRay][docs] XRay Framework Usage Guide.

Add link to new doc in index.

Jan 2 2019, 10:05 PM
dberris created D56244: [XRay][docs] XRay Framework Usage Guide.
Jan 2 2019, 10:03 PM

Dec 21 2018

dberris added inline comments to D56000: [compiler-rt] [xray] Disable alignas() for thread_local objects on NetBSD.
Dec 21 2018, 4:10 PM

Dec 20 2018

dberris accepted D55891: [compiler-rt] [xray] [tests] Detect and handle missing LLVMTestingSupport gracefully.

LGTM

Dec 20 2018, 6:59 PM

Dec 19 2018

dberris accepted D55842: Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2.

LGTM -- cannot reproduce the original issue with this patch.

Dec 19 2018, 1:42 AM
dberris added a comment to D55842: Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2.

Apologies for the delay, but I'm giving this a go now.

Dec 19 2018, 1:27 AM

Dec 13 2018

dberris accepted D55691: [Object] Rename getRelrRelocationType to getRelativeRelocationType.

LGTM

Dec 13 2018, 11:46 PM
dberris accepted D55689: [llvm-xray] Store offset pointers in temporaries.

LGTM

Dec 13 2018, 9:34 PM
dberris accepted D55542: [llvm-xray] Support for PIE.

LGTM still, thanks @phosek!

Dec 13 2018, 5:19 PM

Dec 11 2018

dberris accepted D55548: [XRay] Add a helper function sortByKey to simplify code.

LGTM -- Thanks @MaskRay!

Dec 11 2018, 4:09 AM

Dec 10 2018

dberris accepted D55542: [llvm-xray] Support for PIE.

LGTM -- Thanks @phosek!

Dec 10 2018, 8:25 PM

Dec 6 2018

dberris committed rCRT348568: [XRay] Use preallocated memory for XRay profiling.
[XRay] Use preallocated memory for XRay profiling
Dec 6 2018, 10:26 PM
dberris committed rL348568: [XRay] Use preallocated memory for XRay profiling.
[XRay] Use preallocated memory for XRay profiling
Dec 6 2018, 10:26 PM
dberris closed D55249: [XRay] Use preallocated memory for XRay profiling.
Dec 6 2018, 10:26 PM
dberris updated the diff for D55249: [XRay] Use preallocated memory for XRay profiling.

Rebase again. This is now ready for another look.

Dec 6 2018, 10:01 PM
dberris committed rCRT348563: Re-land "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Re-land "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 6 2018, 7:22 PM
dberris committed rL348563: Re-land "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Re-land "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 6 2018, 7:22 PM

Dec 5 2018

dberris committed rCRT348455: Revert "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Revert "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 5 2018, 7:32 PM
dberris committed rL348455: Revert "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Revert "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 5 2018, 7:32 PM
dberris committed rL348449: [XRay] Use a local lvalue as arg to AppendEmplace(...).
[XRay] Use a local lvalue as arg to AppendEmplace(...)
Dec 5 2018, 6:58 PM
dberris committed rCRT348449: [XRay] Use a local lvalue as arg to AppendEmplace(...).
[XRay] Use a local lvalue as arg to AppendEmplace(...)
Dec 5 2018, 6:58 PM
dberris committed rCRT348445: [XRay] Use default-constructed struct as argument to Append(...).
[XRay] Use default-constructed struct as argument to Append(...)
Dec 5 2018, 5:59 PM
dberris committed rL348445: [XRay] Use default-constructed struct as argument to Append(...).
[XRay] Use default-constructed struct as argument to Append(...)
Dec 5 2018, 5:59 PM
dberris committed rCRT348438: Re-land r348335 "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Re-land r348335 "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 5 2018, 4:29 PM
dberris committed rL348438: Re-land r348335 "[XRay] Move-only Allocator, FunctionCallTrie, and Array".
Re-land r348335 "[XRay] Move-only Allocator, FunctionCallTrie, and Array"
Dec 5 2018, 4:29 PM

Dec 4 2018

dberris updated the diff for D55249: [XRay] Use preallocated memory for XRay profiling.

Rebase.

Dec 4 2018, 11:29 PM
dberris committed rL348338: [XRay] Use uptr instead of uintptr_t.
[XRay] Use uptr instead of uintptr_t
Dec 4 2018, 11:17 PM
dberris committed rCRT348338: [XRay] Use uptr instead of uintptr_t.
[XRay] Use uptr instead of uintptr_t
Dec 4 2018, 11:17 PM
dberris committed rL348336: [XRay] Use deallocateBuffer instead of deallocate.
[XRay] Use deallocateBuffer instead of deallocate
Dec 4 2018, 11:08 PM
dberris committed rCRT348336: [XRay] Use deallocateBuffer instead of deallocate.
[XRay] Use deallocateBuffer instead of deallocate
Dec 4 2018, 11:08 PM
dberris updated the diff for D55249: [XRay] Use preallocated memory for XRay profiling.

Addressing comment by @mboerger.

Dec 4 2018, 10:57 PM
dberris committed rL348335: [XRay] Move-only Allocator, FunctionCallTrie, and Array.
[XRay] Move-only Allocator, FunctionCallTrie, and Array
Dec 4 2018, 10:48 PM
dberris committed rCRT348335: [XRay] Move-only Allocator, FunctionCallTrie, and Array.
[XRay] Move-only Allocator, FunctionCallTrie, and Array
Dec 4 2018, 10:47 PM
dberris closed D54989: [XRay] Move-only Allocator, FunctionCallTrie, and Array.
Dec 4 2018, 10:47 PM

Dec 3 2018

dberris created D55249: [XRay] Use preallocated memory for XRay profiling.
Dec 3 2018, 9:12 PM
dberris added a child revision for D54989: [XRay] Move-only Allocator, FunctionCallTrie, and Array: D55249: [XRay] Use preallocated memory for XRay profiling.
Dec 3 2018, 9:12 PM

Nov 28 2018

dberris added inline comments to D54989: [XRay] Move-only Allocator, FunctionCallTrie, and Array.
Nov 28 2018, 12:33 AM
dberris updated the diff for D54989: [XRay] Move-only Allocator, FunctionCallTrie, and Array.

Addressing comments by @mboerger.

Nov 28 2018, 12:32 AM

Nov 27 2018

dberris created D54989: [XRay] Move-only Allocator, FunctionCallTrie, and Array.
Nov 27 2018, 9:36 PM

Nov 21 2018

dberris accepted D54784: Use --push/pop-state with XRay link deps.

LGTM

Nov 21 2018, 6:51 PM · Restricted Project

Nov 20 2018

dberris committed rCRT347368: [XRay] Add a test for re-initialising FDR mode (NFC).
[XRay] Add a test for re-initialising FDR mode (NFC)
Nov 20 2018, 4:33 PM
dberris committed rL347368: [XRay] Add a test for re-initialising FDR mode (NFC).
[XRay] Add a test for re-initialising FDR mode (NFC)
Nov 20 2018, 4:33 PM

Nov 19 2018

dberris committed rCRT347286: [XRay] Add a test for allocator exhaustion.
[XRay] Add a test for allocator exhaustion
Nov 19 2018, 7:58 PM
dberris committed rL347286: [XRay] Add a test for allocator exhaustion.
[XRay] Add a test for allocator exhaustion
Nov 19 2018, 7:58 PM
dberris committed rCRT347280: [XRay] Move buffer extents back to the heap.
[XRay] Move buffer extents back to the heap
Nov 19 2018, 5:05 PM
dberris committed rL347280: [XRay] Move buffer extents back to the heap.
[XRay] Move buffer extents back to the heap
Nov 19 2018, 5:05 PM
dberris closed D54684: [XRay] Move buffer extents back to the heap.
Nov 19 2018, 5:05 PM
dberris updated the diff for D54684: [XRay] Move buffer extents back to the heap.

clang-format with LLVM style

Nov 19 2018, 3:38 PM
dberris added inline comments to D54684: [XRay] Move buffer extents back to the heap.
Nov 19 2018, 2:00 PM

Nov 18 2018

dberris created D54684: [XRay] Move buffer extents back to the heap.
Nov 18 2018, 9:33 PM

Nov 8 2018

dberris committed rCRT346477: [XRay] Add a test for function id encoding/decoding (NFC).
[XRay] Add a test for function id encoding/decoding (NFC)
Nov 8 2018, 11:46 PM
dberris committed rL346477: [XRay] Add a test for function id encoding/decoding (NFC).
[XRay] Add a test for function id encoding/decoding (NFC)
Nov 8 2018, 11:46 PM
dberris committed rCRT346476: [XRay] Add a static assertion on size of metadata payload (NFC).
[XRay] Add a static assertion on size of metadata payload (NFC)
Nov 8 2018, 11:19 PM
dberris committed rL346476: [XRay] Add a static assertion on size of metadata payload (NFC).
[XRay] Add a static assertion on size of metadata payload (NFC)
Nov 8 2018, 11:19 PM
dberris committed rCRT346475: [XRay] Fix enter function tracing for record unwriting.
[XRay] Fix enter function tracing for record unwriting
Nov 8 2018, 10:51 PM
dberris committed rL346475: [XRay] Fix enter function tracing for record unwriting.
[XRay] Fix enter function tracing for record unwriting
Nov 8 2018, 10:51 PM
dberris closed D54292: [XRay] Fix enter function tracing for record unwriting.
Nov 8 2018, 10:51 PM
dberris committed rCRT346474: [XRay] Add atomic fences around non-atomic reads and writes.
[XRay] Add atomic fences around non-atomic reads and writes
Nov 8 2018, 10:42 PM
dberris committed rL346474: [XRay] Add atomic fences around non-atomic reads and writes.
[XRay] Add atomic fences around non-atomic reads and writes
Nov 8 2018, 10:42 PM
dberris closed D54291: [XRay] Add atomic fences around non-atomic reads and writes.
Nov 8 2018, 10:42 PM
dberris committed rCRT346473: [XRay] Improve FDR trace handling and error messaging.
[XRay] Improve FDR trace handling and error messaging
Nov 8 2018, 10:30 PM
dberris committed rL346473: [XRay] Improve FDR trace handling and error messaging.
[XRay] Improve FDR trace handling and error messaging
Nov 8 2018, 10:30 PM
dberris closed D54201: [XRay] Improve FDR trace handling and error messaging.
Nov 8 2018, 10:30 PM
dberris created D54292: [XRay] Fix enter function tracing for record unwriting.
Nov 8 2018, 9:04 PM
dberris created D54291: [XRay] Add atomic fences around non-atomic reads and writes.
Nov 8 2018, 9:02 PM
dberris added inline comments to D54201: [XRay] Improve FDR trace handling and error messaging.
Nov 8 2018, 8:33 PM
dberris updated the diff for D54201: [XRay] Improve FDR trace handling and error messaging.

Address some comments by @mboerger.

Nov 8 2018, 8:32 PM

Nov 7 2018

dberris committed rL346306: [XRay] Clean up more std::copy(...)'s.
[XRay] Clean up more std::copy(...)'s
Nov 7 2018, 3:55 AM
dberris committed rL346304: [XRay] Use explicit string conversion.
[XRay] Use explicit string conversion
Nov 7 2018, 3:47 AM
dberris created D54201: [XRay] Improve FDR trace handling and error messaging.
Nov 7 2018, 2:08 AM

Nov 6 2018

dberris committed rCRT346293: [XRay] Use TSC delta encoding for custom/typed events.
[XRay] Use TSC delta encoding for custom/typed events
Nov 6 2018, 8:40 PM
dberris committed rL346293: [XRay] Use TSC delta encoding for custom/typed events.
[XRay] Use TSC delta encoding for custom/typed events
Nov 6 2018, 8:40 PM
dberris closed D54140: [XRay] Use TSC delta encoding for custom/typed events.
Nov 6 2018, 8:40 PM
dberris added a comment to D49025: [XRay] basic mode PID and TID always fetch.

Aha! Right, I think the test is wrong indeed. We shouldn't be assuming that the tid == pid in the test, when recording the first argument for the thread id, and rather be calling the correct function for getting the thread id all the time.

Nov 6 2018, 2:42 PM
dberris added inline comments to D54140: [XRay] Use TSC delta encoding for custom/typed events.
Nov 6 2018, 1:01 AM
dberris updated the diff for D54140: [XRay] Use TSC delta encoding for custom/typed events.

Address comments by @mboerger.

Nov 6 2018, 1:01 AM
dberris committed rCRT346214: [XRay] Update XRayRecord to support Custom/Typed Events.
[XRay] Update XRayRecord to support Custom/Typed Events
Nov 6 2018, 12:54 AM
dberris committed rL346214: [XRay] Update XRayRecord to support Custom/Typed Events.
[XRay] Update XRayRecord to support Custom/Typed Events
Nov 6 2018, 12:54 AM