Page MenuHomePhabricator

ast (Alexei Starovoitov)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 2 2014, 6:51 PM (267 w, 5 d)

Recent Activity

Fri, Jan 17

ast added inline comments to D72787: [BPF] Adjust optimizations to generate kernel verifier friendly codes.
Fri, Jan 17, 7:25 PM · Restricted Project

Thu, Jan 16

ast accepted D72787: [BPF] Adjust optimizations to generate kernel verifier friendly codes.
Thu, Jan 16, 10:32 AM · Restricted Project

Wed, Jan 15

ast added a comment to D72787: [BPF] Adjust optimizations to generate kernel verifier friendly codes.

looks fine. could you run it against kernel selftests and check when it triggers? since verifier cannot handle the optimized code there should be almost no cases of reverse transformation.
And if there are then add them as .ll tests?

Wed, Jan 15, 1:10 PM · Restricted Project

Sun, Dec 22

ast accepted D71818: reland "[DebugInfo] Support to emit debugInfo for extern variables".
Sun, Dec 22, 5:39 PM · Restricted Project, Restricted Project

Dec 17 2019

ast accepted D71638: [BPF] extend BTF_KIND_FUNC to cover global, static and extern funcs.

lgtm. please don't land it yet. Let me test with corresponding kernel and libbpf changes first.

Dec 17 2019, 7:33 PM · Restricted Project

Dec 10 2019

ast accepted D71290: [BPF] put not-section-attribute externs into BTF ".extern" data section.

lgtm as well

Dec 10 2019, 11:23 AM · Restricted Project

Dec 7 2019

ast accepted D70697: [BPF] Support to emit debugInfo for extern variables.

thanks for adding extra tests

Dec 7 2019, 11:11 AM · Restricted Project
ast accepted D71162: [BPF] Support weak global variables for BTF.

lgtm

Dec 7 2019, 8:42 AM · Restricted Project

Nov 25 2019

ast accepted D70703: [BPF] add "llvm." prefix to BPF internally created globals.
Nov 25 2019, 6:17 PM · Restricted Project
ast accepted D70697: [BPF] Support to emit debugInfo for extern variables.

got it. lgtm

Nov 25 2019, 2:56 PM · Restricted Project
ast added a comment to D70697: [BPF] Support to emit debugInfo for extern variables.

clang side will expose debuginfo for extern variables and functions, while the backend support is for functions only? Or I'm misreading the patch.

Nov 25 2019, 2:37 PM · Restricted Project

Nov 22 2019

ast accepted D70586: [BPF] Fix a recursion bug in BPF Peephole ZEXT optimization.
Nov 22 2019, 12:43 AM · Restricted Project

Nov 20 2019

ast accepted D70511: [BPF] Fix a bug in peephole optimization.
Nov 20 2019, 2:34 PM · Restricted Project

Nov 9 2019

ast added a comment to D69759: [BPF] Add preserve_access_index attribute for record definition.

I've tested this patch on several kernel selftests/bpf/ and it works like magic. Very nice improvement.

Nov 9 2019, 11:26 AM · Restricted Project

Nov 8 2019

ast accepted D69759: [BPF] Add preserve_access_index attribute for record definition.

Great. Looks like inner propagation fix was straighforward. Thanks!

Nov 8 2019, 6:40 PM · Restricted Project
ast added a comment to D69759: [BPF] Add preserve_access_index attribute for record definition.

So what happens in the following case:

struct S1;
struct S2 {
  struct S1 *f;
} relo *s2;
// access s2->f
struct S1 {
  int i;
} relo;
// access s2->f->i

lack of relo on fwd declaration is not going to be sticky 'non-relo' when it's seen later, right?
So all 3 deref will be relocatable?

Nov 8 2019, 10:53 AM · Restricted Project
ast added a comment to D69759: [BPF] Add preserve_access_index attribute for record definition.

Is the attribute sticky with forward delcarations?

struct s __reloc;
Nov 8 2019, 10:08 AM · Restricted Project
ast added a comment to D69759: [BPF] Add preserve_access_index attribute for record definition.

Looks great. This is a big improvement in usability.
Is there a use case to apply that attribute to inner types automatically ?

struct s1 {
  int foo;
};
struct s2 {
   struct s1 *ptr;
} __reloc__ *s2;

s2->ptr->foo -- will both deref be relocatable or only first?

Nov 8 2019, 9:49 AM · Restricted Project

Nov 7 2019

ast accepted D69957: [BPF] turn on -mattr=+alu32 for cpu version v3 and later.
Nov 7 2019, 2:17 PM · Restricted Project

Nov 4 2019

ast accepted D69837: [BPF] Fix CO-RE bugs with bitfields.
Nov 4 2019, 8:00 PM · Restricted Project

Nov 3 2019

ast accepted D69761: [BPF] fix a bug in __builtin_preserve_field_info() with FIELD_BYTE_SIZE.
Nov 3 2019, 8:10 AM · Restricted Project

Oct 25 2019

ast accepted D69438: [BPF] fix a CO-RE issue with -mattr=+alu32.
Oct 25 2019, 11:11 AM · Restricted Project

Oct 24 2019

ast added a comment to D69393: [RFC][DebugInfo] emit user specified address_space in dwarf.

The address spaces envisioned by the Linux kernel appear to be more informational and not descriptive of hardware characteristics.

Oct 24 2019, 8:23 PM · Restricted Project, debug-info

Oct 20 2019

ast accepted D69229: [BPF] fix indirect call assembly code.
Oct 20 2019, 6:23 PM · Restricted Project

Oct 9 2019

ast accepted D68760: [BPF] Remove relocation for patchable externs.
Oct 9 2019, 10:48 PM · Restricted Project

Oct 8 2019

ast accepted D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

perfect. ship it

Oct 8 2019, 10:36 AM · Restricted Project, Restricted Project

Oct 7 2019

ast added a comment to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

thanks for adding the tests

Oct 7 2019, 12:05 PM · Restricted Project, Restricted Project

Oct 6 2019

ast accepted D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

lgtm. thanks!

Oct 6 2019, 4:23 PM · Restricted Project, Restricted Project

Oct 5 2019

ast added inline comments to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Oct 5 2019, 6:48 PM · Restricted Project, Restricted Project

Oct 3 2019

ast accepted D68389: [BPF] Handle offset reloc endpoint ending in the middle of chain properly.

nice cleanup.

Oct 3 2019, 8:56 AM · Restricted Project

Sep 22 2019

ast accepted D67883: [CLANG][BPF] permit any argument type for __builtin_preserve_access_index().

I tested few different examples. Generated code and relocations look good.

Sep 22 2019, 10:11 AM · Restricted Project, Restricted Project

Sep 18 2019

ast accepted D67734: [CLANG-BPF] change __builtin_preserve_access_index() signature.

that's indeed much better. Thanks for adding all the tests.

Sep 18 2019, 4:39 PM · Restricted Project, Restricted Project

Sep 17 2019

ast accepted D67688: [BPF] Permit all user instructed offset relocatiions.

thanks for the quick fix.

Sep 17 2019, 8:21 PM · Restricted Project

Aug 17 2019

ast accepted D66372: [BPF] Fix bpf llvm-objdump issues.
Aug 17 2019, 8:14 AM · Restricted Project

Aug 3 2019

ast accepted D65700: [Transforms] Do not drop !preserve.access.index metadata.

lgtm

Aug 3 2019, 11:31 AM · Restricted Project

Aug 2 2019

ast accepted D65618: [BPF] Handling type conversions correctly for CO-RE.

looks good now. thanks

Aug 2 2019, 4:06 PM · Restricted Project
ast accepted D65664: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 2 2019, 11:59 AM · Restricted Project, Restricted Project

Aug 1 2019

ast accepted D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

and the diff is shorter now :)

Aug 1 2019, 5:05 PM · Restricted Project
ast added inline comments to D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 1 2019, 4:04 PM · Restricted Project

Jul 24 2019

ast accepted D65259: fix typedef issue for offset relocation.
Jul 24 2019, 9:14 PM · Restricted Project
ast accepted D65258: fix CO-RE incorrect index access string.
Jul 24 2019, 9:11 PM · Restricted Project

Jul 14 2019

ast accepted D64598: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic.
Jul 14 2019, 8:04 PM · Restricted Project
ast accepted D64606: [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics.
Jul 14 2019, 8:04 PM · Restricted Project

Jun 24 2019

ast accepted D61524: [BPF] Support for compile once and run everywhere.
Jun 24 2019, 12:38 PM · Restricted Project

May 28 2019

ast accepted D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

lgtm

May 28 2019, 5:22 PM · Restricted Project, Restricted Project
ast accepted D61524: [BPF] Support for compile once and run everywhere.
May 28 2019, 5:22 PM · Restricted Project

May 26 2019

ast accepted D62460: [BPF] generate R_BPF_NONE relocation for BTF DataSec variables.
May 26 2019, 7:55 AM · Restricted Project

May 23 2019

ast added inline comments to D61524: [BPF] Support for compile once and run everywhere.
May 23 2019, 7:01 PM · Restricted Project
ast added inline comments to D61524: [BPF] Support for compile once and run everywhere.
May 23 2019, 6:11 PM · Restricted Project
ast accepted D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

from kernel, libbpf, tooling and user experience points of view this approach looks the best to me.

May 23 2019, 6:07 PM · Restricted Project, Restricted Project

May 12 2019

ast accepted D61826: [BPF] emit BTF sections only if debuginfo available.
May 12 2019, 6:59 PM · Restricted Project

Apr 25 2019

ast accepted D61173: [BPF] do not generate predefined macro bpf.

Macro shipit:

Apr 25 2019, 11:22 PM · Restricted Project, Restricted Project
ast added inline comments to D61173: [BPF] do not generate predefined macro bpf.
Apr 25 2019, 11:01 PM · Restricted Project, Restricted Project

Mar 28 2019

ast accepted D59943: [BPF] add proper multi-dimensional array support.
Mar 28 2019, 9:21 AM · Restricted Project

Mar 15 2019

ast accepted D59441: [BPF] Add BTF Var and DataSec Support.
Mar 15 2019, 10:28 PM · Restricted Project

Mar 4 2019

ast accepted D58936: [BPF] Do not generate BTF sections unnecessarily.
Mar 4 2019, 4:51 PM · Restricted Project

Jan 30 2019

ast accepted D57436: gn build: Add BPF target..
In D57436#1377680, @ast wrote:

hmm. so you're saying when we add new file to the normal CMakeFiles, we don't need to touch GN ?

Yes.

Jan 30 2019, 1:18 PM
ast added a comment to D57436: gn build: Add BPF target..

hmm. so you're saying when we add new file to the normal CMakeFiles, we don't need to touch GN ?
So it's going to bit rot immediately?
what's the purpose of this GN work then?

Jan 30 2019, 1:03 PM

Jan 29 2019

ast added a reviewer for D57436: gn build: Add BPF target.: yonghong-song.
Jan 29 2019, 8:59 PM
ast requested changes to D57436: gn build: Add BPF target..

thanks for doing this work.
any pointers to read about GN?
Also please include code owners as reviewers next time.

Jan 29 2019, 8:59 PM

Nov 26 2018

ast added a comment to D53736: [BTF] Add BTF DebugInfo.

I find that there hasn't been actual discussion on the mailing list

Nov 26 2018, 8:51 AM · debug-info

Oct 31 2018

ast accepted D53736: [BTF] Add BTF DebugInfo.

Eric, David, any objections to land it now?
It's orthogonal to everything else in the llvm land and we'll keep working on it for foreseeable future.
All comments were addressed and any further refactoring requests can be done later.
I'd like to avoid sitting on it for too long, since a bunch of folks in bpf community are waiting on it.
We have two large sets of kernel patches that depend on it.
We'd like to land llvm bits first, so our kernel test bots can do testing with latest llvm trunk and latest kernel tree asap.

Oct 31 2018, 4:28 PM · debug-info

Oct 12 2018

ast accepted D52950: [BPF] Add BTF generation for BPF target.

we will be landing this shortly.
BTF side was thoroughly tested and kernel support was there for some time.
If there is a better way to integrate BTF with MC please let us know.

Oct 12 2018, 9:19 AM · debug-info

Dec 5 2017

ast accepted rL315889: bpf: fix bug on silently truncating 64-bit immediate.
Dec 5 2017, 8:39 AM

Nov 18 2017

ast committed rL318615: [bpf] remove unused variable.
[bpf] remove unused variable
Nov 18 2017, 6:43 PM
ast committed rL318614: [bpf] allow direct and indirect calls.
[bpf] allow direct and indirect calls
Nov 18 2017, 5:35 PM

Jun 2 2017

ast accepted D33849: DAG: Undo and->or combine with FrameIndexes.

bpf side looks good and this undo of 'or' back into 'add' is useful for bpf backend as well,
since 'ptr |= const' is not recognized by the kernel and bpf backend emits only 'ptr +=' which causes unnecessary ugly code in places like in this test.

Jun 2 2017, 4:07 PM

May 26 2017

ast committed rL304043: [bpf] disallow global_addr+off folding.
[bpf] disallow global_addr+off folding
May 26 2017, 3:33 PM

May 5 2017

ast committed rL302265: [bpf] fix a bug which causes incorrect big endian reloc fixup.
[bpf] fix a bug which causes incorrect big endian reloc fixup
May 5 2017, 11:18 AM

May 3 2017

ast committed rL302055: [bpf] add relocation support.
[bpf] add relocation support
May 3 2017, 10:44 AM

Apr 28 2017

ast committed rL301653: [bpf] add bigendian support to disassembler.
[bpf] add bigendian support to disassembler
Apr 28 2017, 10:04 AM

Apr 13 2017

ast committed rL300269: [bpf] Fix memory offset check for loads and stores.
[bpf] Fix memory offset check for loads and stores
Apr 13 2017, 3:37 PM
ast closed D32055: [bpf] Fix memory offset check for loads and stores by committing rL300269: [bpf] Fix memory offset check for loads and stores.
Apr 13 2017, 3:37 PM
ast accepted D32055: [bpf] Fix memory offset check for loads and stores.
Apr 13 2017, 3:10 PM
ast commandeered D32055: [bpf] Fix memory offset check for loads and stores.
Apr 13 2017, 3:10 PM
ast accepted D32055: [bpf] Fix memory offset check for loads and stores.
Apr 13 2017, 3:07 PM

Jan 17 2017

ast requested changes to D28824: Revert r292204 as it introduces a stack-use-after-scope issue..

unnecessary anymore.

Jan 17 2017, 1:26 PM
ast committed rL292258: [bpf] fix stack-use-after-scope.
[bpf] fix stack-use-after-scope
Jan 17 2017, 1:25 PM

Jan 16 2017

ast committed rL292204: [bpf] error when unknown bpf helper is called.
[bpf] error when unknown bpf helper is called
Jan 16 2017, 11:37 PM
ast committed rL292180: [bpf] error when BPF stack size exceeds 512 bytes.
[bpf] error when BPF stack size exceeds 512 bytes
Jan 16 2017, 5:16 PM

Jan 6 2017

ast accepted rL291297: [BPF] Fix some Clang-tidy modernize and Include What You Use warnings; other….

lgtm

Jan 6 2017, 5:50 PM

Dec 13 2016

ast committed rL289569: [bpf] change llvm-objdump to print dec instead of hex.
[bpf] change llvm-objdump to print dec instead of hex
Dec 13 2016, 11:17 AM

Nov 20 2016

ast committed rL287522: [bpf] attempt to fix big-endian bots.
[bpf] attempt to fix big-endian bots
Nov 20 2016, 11:36 PM
ast committed rL287521: [bpf] fix dwarf elf relocs and line numbers.
[bpf] fix dwarf elf relocs and line numbers
Nov 20 2016, 10:31 PM

Nov 19 2016

ast committed rL287477: [bpf] add BPF disassembler.
[bpf] add BPF disassembler
Nov 19 2016, 6:35 PM

Nov 17 2016

ast committed rL287300: convert bpf assembler to look like kernel verifier output.
convert bpf assembler to look like kernel verifier output
Nov 17 2016, 6:42 PM

Oct 9 2016

ast added a comment to D25412: Move the global variables representing each Target behind accessor function.

BPF bits look fine. Thanks

Oct 9 2016, 5:14 PM

Oct 6 2016

ast added a comment to D25355: Target: Replace most PatLeaf patterns that match immediates with ImmLeaf patterns. NFCI..

nice cleanup. bpf bits look fine

Oct 6 2016, 7:20 PM

Sep 28 2016

ast accepted D24822: [SelectionDAG] Enable division-by-constant optimization for wide types.

lgtm
there are different front-ends and we cannot control them all, so backend has to have end-user understandable errors, though it's not pretty.

Sep 28 2016, 9:05 AM

Sep 27 2016

ast requested changes to D24822: [SelectionDAG] Enable division-by-constant optimization for wide types.
Sep 27 2016, 1:40 PM
ast added inline comments to D24822: [SelectionDAG] Enable division-by-constant optimization for wide types.
Sep 27 2016, 8:04 AM

Aug 12 2016

ast updated subscribers of D23457: Don't break curses applications in terminalHasColors().
Aug 12 2016, 5:43 PM

Jul 15 2016

ast committed rL275633: BPF: Use official ELF e_machine value.
BPF: Use official ELF e_machine value
Jul 15 2016, 3:35 PM

May 27 2016

ast accepted D20726: [BPF] Remove exit-on-error from tests (PR27768, PR27769).

looks good. thanks!

May 27 2016, 8:20 AM

May 25 2016

ast accepted D20571: [BPF] Remove exit-on-error flag in test (PR27767).

thanks!

May 25 2016, 9:31 AM

May 24 2016

ast requested changes to D20571: [BPF] Remove exit-on-error flag in test (PR27767).
May 24 2016, 11:06 AM

May 20 2016

ast accepted D20471: [BPF] Remove exit-on-error flag in test (PR27766).

lgtm
thanks

May 20 2016, 8:55 AM

Mar 18 2016

ast committed rL263842: BPF: emit an error message for unsupported signed division operation.
BPF: emit an error message for unsupported signed division operation
Mar 18 2016, 3:07 PM

Jan 27 2016

ast accepted D16591: Add backend dignostic printer for unsupported features.

thanks

Jan 27 2016, 9:02 AM

Jan 26 2016

ast added a comment to D16591: Add backend dignostic printer for unsupported features.

looks good.
could you add a testcase for DK_Unsupported ?

Jan 26 2016, 10:56 AM