Page MenuHomePhabricator

yonghong-song (Yonghong Song)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 4 2018, 11:50 PM (54 w, 2 d)

Recent Activity

Fri, Oct 11

yonghong-song added inline comments to D68822: [WIP][BPF] Support external globals.
Fri, Oct 11, 4:14 PM · Restricted Project

Thu, Oct 10

yonghong-song updated the diff for D68822: [WIP][BPF] Support external globals.
Thu, Oct 10, 10:33 PM · Restricted Project
yonghong-song created D68822: [WIP][BPF] Support external globals.
Thu, Oct 10, 11:50 AM · Restricted Project
yonghong-song committed rGd46a6a9e6865: [BPF] Remove relocation for patchable externs (authored by yonghong-song).
[BPF] Remove relocation for patchable externs
Thu, Oct 10, 8:32 AM
yonghong-song closed D68760: [BPF] Remove relocation for patchable externs.
Thu, Oct 10, 8:32 AM · Restricted Project

Wed, Oct 9

yonghong-song created D68760: [BPF] Remove relocation for patchable externs.
Wed, Oct 9, 10:47 PM · Restricted Project

Tue, Oct 8

yonghong-song committed rG05e46979d2f4: [BPF] do compile-once run-everywhere relocation for bitfields (authored by yonghong-song).
[BPF] do compile-once run-everywhere relocation for bitfields
Tue, Oct 8, 11:26 AM
yonghong-song closed D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Tue, Oct 8, 11:26 AM · Restricted Project, Restricted Project
yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

use only one relocation for left shift to optimize for direct load. The bpf_probe_read() big endian mode could have 4 more arithmetic instructions compared to little endian mode. The performance impact should be negligible comparing to bpf_probe_read() itself.

Tue, Oct 8, 12:20 AM · Restricted Project, Restricted Project

Mon, Oct 7

yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

separate old FIELD_LSHIFT_U64 relocation to FIELD_LSHIFT_U64_BUF and FIELD_LSHIFT_U64_VAL. This allows to generate better code for native loads.

Mon, Oct 7, 9:08 PM · Restricted Project, Restricted Project
yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

add test cases. Also handle filed_info for field array elements properly.

Mon, Oct 7, 11:39 AM · Restricted Project, Restricted Project

Sat, Oct 5

yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

fixed a few bugs from previous revision. Removed FIELD_ACCESS_OFFSET relocation which will be identical to FIELD_BYTE_OFFSET. All of these CORE related test cases are adjusted and passed now. Removed [WIP] prefix.
TODO: write new tests for the new functionality.

Sat, Oct 5, 9:56 PM · Restricted Project, Restricted Project
yonghong-song added inline comments to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Sat, Oct 5, 8:43 PM · Restricted Project, Restricted Project
yonghong-song added a comment to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

All these names are not added as builtin enum before compilation starts, right?

Do you prefer to have builtin enum? If we do this, we will emit this enum all the time,
regardless of whether people uses this builtin or not. Are you worried about API
stability?

Sat, Oct 5, 8:34 PM · Restricted Project, Restricted Project
yonghong-song added inline comments to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Sat, Oct 5, 8:08 PM · Restricted Project, Restricted Project

Fri, Oct 4

yonghong-song updated the summary of D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Fri, Oct 4, 9:31 AM · Restricted Project, Restricted Project
yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

using 64bit buf always, handling non bitfield members, etc.

Fri, Oct 4, 9:26 AM · Restricted Project, Restricted Project

Thu, Oct 3

yonghong-song committed rG02ac75092dbb: [BPF] Handle offset reloc endpoint ending in the middle of chain properly (authored by yonghong-song).
[BPF] Handle offset reloc endpoint ending in the middle of chain properly
Thu, Oct 3, 9:30 AM
yonghong-song added inline comments to D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Thu, Oct 3, 6:39 AM · Restricted Project, Restricted Project
yonghong-song created D68389: [BPF] Handle offset reloc endpoint ending in the middle of chain properly.
Thu, Oct 3, 6:24 AM · Restricted Project

Wed, Oct 2

yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

return byte_size/offset/lshift/rshift based on size alignment

Wed, Oct 2, 3:11 PM · Restricted Project, Restricted Project
yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

use a bpf target builtin __builtin_get_field_info().

Wed, Oct 2, 2:07 PM · Restricted Project, Restricted Project

Tue, Oct 1

yonghong-song abandoned D67940: [BPF] Preserve and make bitfield access relocatable.

We will take a different approach. So abandon this revision.

Tue, Oct 1, 11:45 AM · Restricted Project, Restricted Project

Thu, Sep 26

yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

add BPF backend support

Thu, Sep 26, 8:28 AM · Restricted Project, Restricted Project

Tue, Sep 24

yonghong-song committed rG1487bf6c82a8: [BPF] Generate array dimension size properly for zero-size elements (authored by yonghong-song).
[BPF] Generate array dimension size properly for zero-size elements
Tue, Sep 24, 3:40 PM
yonghong-song updated the diff for D67980: [BPF] do compile-once run-everywhere relocation for bitfields.

builtin return u32 instead of u64.

Tue, Sep 24, 2:17 PM · Restricted Project, Restricted Project
yonghong-song created D67980: [BPF] do compile-once run-everywhere relocation for bitfields.
Tue, Sep 24, 1:43 PM · Restricted Project, Restricted Project
yonghong-song created D67979: [BPF] Generate array dimension size properly for zero-size elements.
Tue, Sep 24, 1:26 PM · Restricted Project

Mon, Sep 23

yonghong-song updated the diff for D67940: [BPF] Preserve and make bitfield access relocatable.

fix a bug like foo(..., bar(&value), value) where value is set in function bar. This is not right and depends on compiler optimization as there is not guarantee that arguments are evaluated from left to right. The new code looks like a = bar(&value); foo(..., a, value) ...

Mon, Sep 23, 10:57 PM · Restricted Project, Restricted Project
yonghong-song created D67940: [BPF] Preserve and make bitfield access relocatable.
Mon, Sep 23, 4:19 PM · Restricted Project, Restricted Project

Sun, Sep 22

yonghong-song committed rG91d5c2a03558: [CLANG][BPF] permit any argument type for __builtin_preserve_access_index() (authored by yonghong-song).
[CLANG][BPF] permit any argument type for __builtin_preserve_access_index()
Sun, Sep 22, 10:34 AM

Sat, Sep 21

yonghong-song created D67883: [CLANG][BPF] permit any argument type for __builtin_preserve_access_index().
Sat, Sep 21, 10:51 AM · Restricted Project, Restricted Project

Sep 18 2019

yonghong-song committed rGc15aa241f821: [CLANG][BPF] change __builtin_preserve_access_index() signature (authored by yonghong-song).
[CLANG][BPF] change __builtin_preserve_access_index() signature
Sep 18 2019, 8:05 PM
yonghong-song updated the diff for D67734: [CLANG-BPF] change __builtin_preserve_access_index() signature.

does not change arg type and make result type the same as arg type

Sep 18 2019, 4:34 PM · Restricted Project, Restricted Project
yonghong-song created D67734: [CLANG-BPF] change __builtin_preserve_access_index() signature.
Sep 18 2019, 2:15 PM · Restricted Project, Restricted Project

Sep 17 2019

yonghong-song committed rGc68ee0ce7043: [BPF] Permit all user instructed offset relocatiions (authored by yonghong-song).
[BPF] Permit all user instructed offset relocatiions
Sep 17 2019, 8:53 PM
yonghong-song closed D67688: [BPF] Permit all user instructed offset relocatiions.
Sep 17 2019, 8:53 PM · Restricted Project
yonghong-song created D67688: [BPF] Permit all user instructed offset relocatiions.
Sep 17 2019, 8:12 PM · Restricted Project

Aug 17 2019

yonghong-song committed rGa8dad5c79b64: [BPF] Fix bpf llvm-objdump issues. (authored by yonghong-song).
[BPF] Fix bpf llvm-objdump issues.
Aug 17 2019, 3:12 PM
yonghong-song added inline comments to D66372: [BPF] Fix bpf llvm-objdump issues.
Aug 17 2019, 8:26 AM · Restricted Project

Aug 16 2019

yonghong-song created D66372: [BPF] Fix bpf llvm-objdump issues.
Aug 16 2019, 4:37 PM · Restricted Project

Aug 3 2019

yonghong-song committed rG44b16bd4a5b2: [Transforms] Do not drop !preserve.access.index metadata (authored by yonghong-song).
[Transforms] Do not drop !preserve.access.index metadata
Aug 3 2019, 4:42 PM
yonghong-song created D65700: [Transforms] Do not drop !preserve.access.index metadata.
Aug 3 2019, 11:01 AM · Restricted Project

Aug 2 2019

yonghong-song committed rG37d24a696bf7: [BPF] Handling type conversions correctly for CO-RE (authored by yonghong-song).
[BPF] Handling type conversions correctly for CO-RE
Aug 2 2019, 4:19 PM
yonghong-song updated the diff for D65618: [BPF] Handling type conversions correctly for CO-RE.

use report_fatal_error() to report errors for missing metadata.

Aug 2 2019, 3:54 PM · Restricted Project
yonghong-song committed rGd0ea05d5eff4: [BPF] annotate DIType metadata for builtin preseve_array_access_index() (authored by yonghong-song).
[BPF] annotate DIType metadata for builtin preseve_array_access_index()
Aug 2 2019, 2:30 PM
yonghong-song updated the diff for D65664: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

set metadata unless metadata is non-NULL. I have not found a case where metadata is NULL. But nevertheless, let us do this to avoid set a potential NULL metadata.

Aug 2 2019, 2:14 PM · Restricted Project, Restricted Project
yonghong-song abandoned D65617: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

abandon this one. use git monorepo https://reviews.llvm.org/D65664 since we have llvm/clang inter-dependence here.

Aug 2 2019, 10:42 AM · Restricted Project
yonghong-song created D65664: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 2 2019, 10:42 AM · Restricted Project, Restricted Project
yonghong-song abandoned D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

abandon this one. use git monorepo https://reviews.llvm.org/D65664 since we have llvm/clang inter-dependence here.

Aug 2 2019, 10:42 AM · Restricted Project

Aug 1 2019

yonghong-song updated the diff for D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

reorder parameter arrayType to make it with default nullptr and simplifies the code.

Aug 1 2019, 4:34 PM · Restricted Project
yonghong-song added a comment to D65617: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

The clang change https://reviews.llvm.org/D65615.
The BPF backend change https://reviews.llvm.org/D65618.

Aug 1 2019, 4:10 PM · Restricted Project
yonghong-song added inline comments to D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 1 2019, 4:10 PM · Restricted Project
yonghong-song added a comment to D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().

The corresponding IR intrinsic interface change is at https://reviews.llvm.org/D65617
The BPF backend to utilize this information is at https://reviews.llvm.org/D65618

Aug 1 2019, 4:08 PM · Restricted Project
yonghong-song created D65618: [BPF] Handling type conversions correctly for CO-RE.
Aug 1 2019, 4:04 PM · Restricted Project
yonghong-song created D65617: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 1 2019, 4:04 PM · Restricted Project
yonghong-song created D65615: [BPF] annotate DIType metadata for builtin preseve_array_access_index().
Aug 1 2019, 3:58 PM · Restricted Project
yonghong-song abandoned D61810: [BPF] add new intrinsics preserve_{array,union,struct}_access_index.

Abandon this revision for now as one of its variants has been merged.

Aug 1 2019, 3:51 PM · Restricted Project

Jul 25 2019

yonghong-song committed rG329abf293998: [BPF] fix typedef issue for offset relocation (authored by yonghong-song).
[BPF] fix typedef issue for offset relocation
Jul 25 2019, 2:48 PM
yonghong-song committed rGd8efec97bebd: [BPF] fix CO-RE incorrect index access string (authored by yonghong-song).
[BPF] fix CO-RE incorrect index access string
Jul 25 2019, 9:05 AM

Jul 24 2019

yonghong-song added inline comments to D65259: fix typedef issue for offset relocation.
Jul 24 2019, 10:07 PM · Restricted Project
yonghong-song created D65259: fix typedef issue for offset relocation.
Jul 24 2019, 7:37 PM · Restricted Project
yonghong-song created D65258: fix CO-RE incorrect index access string.
Jul 24 2019, 7:33 PM · Restricted Project
yonghong-song abandoned D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

abandon this one. A revised version with most tests has been merged.

Jul 24 2019, 7:28 PM · Restricted Project, Restricted Project
yonghong-song closed D64598: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic.

The commit has been merged.

Jul 24 2019, 7:27 PM · Restricted Project

Jul 16 2019

yonghong-song committed rG4754814c5a68: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index… (authored by yonghong-song).
fix unnamed fiefield issue and add tests for __builtin_preserve_access_index…
Jul 16 2019, 10:25 AM

Jul 15 2019

yonghong-song committed rGe5086481b65a: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index… (authored by yonghong-song).
fix unnamed fiefield issue and add tests for __builtin_preserve_access_index…
Jul 15 2019, 8:43 AM

Jul 14 2019

yonghong-song committed rGc3805d761ea8: [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics (authored by yonghong-song).
[BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics
Jul 14 2019, 9:52 PM

Jul 11 2019

yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

The followup patch for this change is at https://reviews.llvm.org/D64598.

Jul 11 2019, 7:49 PM · Restricted Project, Restricted Project
yonghong-song added a comment to D61810: [BPF] add new intrinsics preserve_{array,union,struct}_access_index.

The followup patch for this is at https://reviews.llvm.org/D64606.

Jul 11 2019, 7:47 PM · Restricted Project
yonghong-song updated subscribers of D64606: [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics.

@jdoerfert Thanks for commenting on my diff. Will find the appropriate person to review.

Jul 11 2019, 5:36 PM · Restricted Project
yonghong-song updated the diff for D64598: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic.

change test case so we can test metadata is generated correctly.

Jul 11 2019, 5:29 PM · Restricted Project
yonghong-song created D64606: [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics.
Jul 11 2019, 4:56 PM · Restricted Project
yonghong-song updated subscribers of D64598: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic.
Jul 11 2019, 2:16 PM · Restricted Project
yonghong-song created D64598: fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic.
Jul 11 2019, 2:14 PM · Restricted Project

Jul 10 2019

yonghong-song added a comment to D61810: [BPF] add new intrinsics preserve_{array,union,struct}_access_index.

@jdoerfert Thanks. I will address your comments and submit standalone test cases for these intrinsics. I do have some BPF unit tests using these intrinsics. But I agree that some standalone unit test cases are also needed.

Jul 10 2019, 6:59 PM · Restricted Project
yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@jdoerfert Thanks for comments. I will submit another patch to add adequate tests for clang frontend as you suggested.

Jul 10 2019, 6:56 PM · Restricted Project, Restricted Project

Jul 9 2019

yonghong-song committed rGa1b2a27a3847: [BPF] Fix a typo in the file name (authored by yonghong-song).
[BPF] Fix a typo in the file name
Jul 9 2019, 11:41 AM
yonghong-song added inline comments to D61524: [BPF] Support for compile once and run everywhere.
Jul 9 2019, 11:08 AM · Restricted Project
yonghong-song committed rGd3d88d08b5d9: [BPF] Support for compile once and run everywhere (authored by yonghong-song).
[BPF] Support for compile once and run everywhere
Jul 9 2019, 8:33 AM

Jul 8 2019

yonghong-song updated the diff for D61524: [BPF] Support for compile once and run everywhere.

change some tests where spFlags will not be used in order for the codes easier backport to older compiler (llvm8).

Jul 8 2019, 11:33 PM · Restricted Project
yonghong-song committed rG048493f882fa: [BPF] Preserve debuginfo array/union/struct type/access index (authored by yonghong-song).
[BPF] Preserve debuginfo array/union/struct type/access index
Jul 8 2019, 9:23 PM
yonghong-song committed rGe085b40e9c4e: Revert "[BPF] Preserve debuginfo array/union/struct type/access index" (authored by yonghong-song).
Revert "[BPF] Preserve debuginfo array/union/struct type/access index"
Jul 8 2019, 9:19 PM
yonghong-song committed rGf21eeafcd9cd: [BPF] Preserve debuginfo array/union/struct type/access index (authored by yonghong-song).
[BPF] Preserve debuginfo array/union/struct type/access index
Jul 8 2019, 9:06 PM
yonghong-song committed rGe3919c6baf9a: [BPF] add new intrinsics preserve_{array,union,struct}_access_index (authored by yonghong-song).
[BPF] add new intrinsics preserve_{array,union,struct}_access_index
Jul 8 2019, 6:53 PM
yonghong-song committed rG0d566dbbae14: Revert "[BPF] add new intrinsics preserve_{array,union,struct}_access_index" (authored by yonghong-song).
Revert "[BPF] add new intrinsics preserve_{array,union,struct}_access_index"
Jul 8 2019, 10:49 AM
yonghong-song committed rG75c2a6709e80: [BPF] add new intrinsics preserve_{array,union,struct}_access_index (authored by yonghong-song).
[BPF] add new intrinsics preserve_{array,union,struct}_access_index
Jul 8 2019, 10:11 AM
yonghong-song added a comment to D61810: [BPF] add new intrinsics preserve_{array,union,struct}_access_index.

@eli.friedman has reviewed a related patch (https://reviews.llvm.org/D61809) and is okay with the whole approach. @ast is also okay with the patch, so I will start to land soon. Thanks!

Jul 8 2019, 7:40 AM · Restricted Project

Jul 5 2019

yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@rsmith Ping again, do you have any comments on this patch? Thanks!

Jul 5 2019, 10:38 AM · Restricted Project, Restricted Project

Jul 3 2019

yonghong-song updated the diff for D61524: [BPF] Support for compile once and run everywhere.

for bpf maps section, change from strict .maps section name to .maps* section name, that is, the map section name starts with .maps

Jul 3 2019, 3:33 PM · Restricted Project
yonghong-song updated the summary of D61810: [BPF] add new intrinsics preserve_{array,union,struct}_access_index.
Jul 3 2019, 9:39 AM · Restricted Project
yonghong-song updated the diff for D61524: [BPF] Support for compile once and run everywhere.

fixed a bug in BTFDebug related to btf fwd type generation

Jul 3 2019, 9:27 AM · Restricted Project

Jul 2 2019

yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@rsmith Just ping, could you take a look at the clang change? If possible, could you share your opinion? Thanks!

Jul 2 2019, 9:10 PM · Restricted Project, Restricted Project
yonghong-song updated the diff for D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

handle unnamed bitfield properly. these struct/union members are not encoded in debuginfo, so skip them during preserve_*_access_index IR intrinsics generation.

Jul 2 2019, 9:07 PM · Restricted Project, Restricted Project
yonghong-song updated the diff for D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

change void *__builtin_preserve_access_index(void *) to const void * _builtin_preserve_access_index(const void *).

Jul 2 2019, 3:48 PM · Restricted Project, Restricted Project

Jul 1 2019

yonghong-song updated the diff for D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

reword the lang doc for builtin_preserve_access_index() to be more user focused
treat using builtin_preserve_access_index() without -g or in nested way as compiler errors

Jul 1 2019, 10:55 PM · Restricted Project, Restricted Project

Jun 27 2019

yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@rsmith I have proposed one clang intrinsic and three IR intrinsics for CO-RE. Could you take a look and share your opinions as well? Thanks!

Jun 27 2019, 10:12 PM · Restricted Project, Restricted Project
yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@eli.friedman Hi, Just ping. I have removed getParents() for ASTContext and added description of the new intrinsic in language doc. Could you take a look? Thanks!

Jun 27 2019, 10:12 AM · Restricted Project, Restricted Project

Jun 24 2019

yonghong-song updated the diff for D61524: [BPF] Support for compile once and run everywhere.

Handling the following case:

Jun 24 2019, 4:42 PM · Restricted Project
yonghong-song added a comment to D61809: [BPF] Preserve debuginfo array/union/struct type/access index.

@eli.friedman I removed the usage of astcontext getParents() stuff. Instead, I mark the region upfront. I also added the intrinsic __builtin_preserve_access_index() into clang
lang extention doc. Could you take a look at new patch? Thanks!

Jun 24 2019, 12:16 PM · Restricted Project, Restricted Project