Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(driver): Add loongarch64 kernel module support #1654

Closed
wants to merge 1 commit into from

Conversation

yzewei
Copy link
Contributor

@yzewei yzewei commented Jan 29, 2024

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area API-version

/area build

/area CI

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-savefile

/area libscap

/area libpman

/area libsinsp

/area tests

/area proposals

Does this PR require a change in the driver versions?

/version driver-API-version-major

/version driver-API-version-minor

/version driver-API-version-patch

/version driver-SCHEMA-version-major

/version driver-SCHEMA-version-minor

/version driver-SCHEMA-version-patch

What this PR does / why we need it:
Add loongarch64 kernel module support.
Temporarily does not involve bpf.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:
I'm not sure what problems are there at present. If there is a problem, I hope to point out.

Does this PR introduce a user-facing change?:

NONE

@poiana
Copy link
Contributor

poiana commented Jan 29, 2024

Welcome @yzewei! It looks like this is your first PR to falcosecurity/libs 🎉

@poiana
Copy link
Contributor

poiana commented Jan 29, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: yzewei
Once this PR has been reviewed and has the lgtm label, please assign jasondellaluce for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

Please double check driver/SCHEMA_VERSION file. See versioning.

/hold

@FedeDP
Copy link
Contributor

FedeDP commented Jan 29, 2024

Hi! Thanks for this PR! For context, you can check this PR out: https://github.com/falcosecurity/libs/pull/1181/files
It added support for kmod for RISC-V.
At a quick glance, i'd say you miss:

Also, can you expand on why 5.19 is minimum supported kernel version?

In the meantime, i triggered the CI ;)

EDIT: note, however, that since we don't have any CI job on loongarch64 it is up to you to ensure that the porting is working fine. See https://github.com/falcosecurity/libs#drivers-officially-supported-architectures NOTEs.

@yzewei
Copy link
Contributor Author

yzewei commented Jan 30, 2024

Hi! Thanks for this PR! For context, you can check this PR out: https://github.com/falcosecurity/libs/pull/1181/files It added support for kmod for RISC-V. At a quick glance, i'd say you miss:

Also, can you expand on why 5.19 is minimum supported kernel version?

In the meantime, i triggered the CI ;)

EDIT: note, however, that since we don't have any CI job on loongarch64 it is up to you to ensure that the porting is working fine. See https://github.com/falcosecurity/libs#drivers-officially-supported-architectures NOTEs.

Thank you very much for your reply!

  • Regarding the characteristics of the new architecture, I am adding
  • README table update is also on the road
  • I will add the test results of the test and test. The PR I currently submitted is only the beginning of the beginning of the LOONGARCH
  • The Loongarch architecture is divided into ABI 1.0 and ABI 2.0. I think we should look forward, and ABI2.0 need kernel > 5.10

@Andreagit97 Andreagit97 added this to the next-driver milestone Feb 7, 2024
@yzewei yzewei force-pushed the master branch 2 times, most recently from 751e76f to c6d87af Compare February 20, 2024 02:54
@yzewei
Copy link
Contributor Author

yzewei commented Feb 22, 2024

[----------] 3 tests from sinsp_container_lookup/sinsp_container_lookup_test
[ RUN      ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/0
[       OK ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/0 (0 ms)
[ RUN      ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/1
[       OK ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/1 (0 ms)
[ RUN      ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/2
[       OK ] sinsp_container_lookup/sinsp_container_lookup_test.delays_match/2 (0 ms)
[----------] 3 tests from sinsp_container_lookup/sinsp_container_lookup_test (0 ms total)

[----------] Global test environment tear-down
[==========] 415 tests from 43 test suites ran. (18984 ms total)
[  PASSED  ] 415 tests.
[100%] Built target run-unit-test-libsinsp
Built target run-unit-tests

run-unit-test-libsinsp passed the test

@FedeDP
Copy link
Contributor

FedeDP commented Feb 22, 2024

Can you test drivers_test too? (that is the most important IMHO :D). See https://github.com/falcosecurity/libs/tree/master/test/drivers

@yzewei
Copy link
Contributor Author

yzewei commented Feb 23, 2024

Can you test drivers_test too? (that is the most important IMHO :D). See https://github.com/falcosecurity/libs/tree/master/test/drivers

Compiling suitable kernel for testing

@yzewei
Copy link
Contributor Author

yzewei commented Feb 28, 2024

The kernel is still being tested. Most of the current tests have passed, but there are still some problems. It will be submitted after all the tests are passed.

@FedeDP
Copy link
Contributor

FedeDP commented Feb 28, 2024

Thank you very much for this effort!

@yzewei

This comment was marked as outdated.

@FedeDP
Copy link
Contributor

FedeDP commented Feb 29, 2024

Are you on a 6.8-rc kernel? Anyway, you just need to rebase on master since this: #1632 was just merged yesterday.

@yzewei
Copy link
Contributor Author

yzewei commented Feb 29, 2024

Are you on a 6.8-rc kernel? Anyway, you just need to rebase on master since this: #1632 was just merged yesterday.

Thanks!

driver/feature_gates.h Outdated Show resolved Hide resolved
@yzewei
Copy link
Contributor Author

yzewei commented Mar 5, 2024

While testing the kmo module, I found some problems with the execution of the test case that makes the splice system call, but I'm not sure if it's consistent in other architectures
test/drivers/test_suites/syscall_enter_suite/splice_e.cpp

/* Parameter 4: flags (type: PT_FLAGS32) */
        evt_test->assert_numeric_param(4, (uint32_t)0);

error log:

[ RUN      ] SyscallEnter.spliceE
/home/yzw/rd/libs/test/drivers/event_class/event_class.cpp:544: Failure
Expected equality of these values:
  *(T*)(m_event_params[m_current_param].valptr)
    Which is: 0
  param
    Which is: 1
>>>>> value of the param is not correct. Param id = 4

I looked up PPM_SPLICE_F_MOVE macro definition as follows:

#define PPM_SPLICE_F_MOVE               (1 << 0)

@yzewei
Copy link
Contributor Author

yzewei commented Mar 5, 2024

While testing the kmo module, I found some problems with the execution of the test case that makes the splice system call, but I'm not sure if it's consistent in other architectures test/drivers/test_suites/syscall_enter_suite/splice_e.cpp

/* Parameter 4: flags (type: PT_FLAGS32) */
        evt_test->assert_numeric_param(4, (uint32_t)0);

error log:

[ RUN      ] SyscallEnter.spliceE
/home/yzw/rd/libs/test/drivers/event_class/event_class.cpp:544: Failure
Expected equality of these values:
  *(T*)(m_event_params[m_current_param].valptr)
    Which is: 0
  param
    Which is: 1
>>>>> value of the param is not correct. Param id = 4

I looked up PPM_SPLICE_F_MOVE macro definition as follows:

#define PPM_SPLICE_F_MOVE               (1 << 0)

I found the reason... #1181 (comment)

The currently problematic test case:

[  FAILED  ] 11 tests, listed below:
[  FAILED  ] SyscallExit.clone3X_child
[  FAILED  ] SyscallExit.clone3X_create_child_with_2_threads
[  FAILED  ] SyscallExit.clone3X_child_clone_parent_flag
[  FAILED  ] SyscallExit.clone3X_child_new_namespace_from_child
[  FAILED  ] SyscallExit.clone3X_child_new_namespace_create_thread
[  FAILED  ] SyscallEnter.spliceE
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_create_child_with_2_threads
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_clone_parent_flag
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_from_child
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_create_thread

@yzewei
Copy link
Contributor Author

yzewei commented Mar 5, 2024

While testing the kmo module, I found some problems with the execution of the test case that makes the splice system call, but I'm not sure if it's consistent in other architectures test/drivers/test_suites/syscall_enter_suite/splice_e.cpp

/* Parameter 4: flags (type: PT_FLAGS32) */
        evt_test->assert_numeric_param(4, (uint32_t)0);

error log:

[ RUN      ] SyscallEnter.spliceE
/home/yzw/rd/libs/test/drivers/event_class/event_class.cpp:544: Failure
Expected equality of these values:
  *(T*)(m_event_params[m_current_param].valptr)
    Which is: 0
  param
    Which is: 1
>>>>> value of the param is not correct. Param id = 4

I looked up PPM_SPLICE_F_MOVE macro definition as follows:

#define PPM_SPLICE_F_MOVE               (1 << 0)

I found the reason... #1181 (comment)

The currently problematic test case:

[  FAILED  ] 11 tests, listed below:
[  FAILED  ] SyscallExit.clone3X_child
[  FAILED  ] SyscallExit.clone3X_create_child_with_2_threads
[  FAILED  ] SyscallExit.clone3X_child_clone_parent_flag
[  FAILED  ] SyscallExit.clone3X_child_new_namespace_from_child
[  FAILED  ] SyscallExit.clone3X_child_new_namespace_create_thread
[  FAILED  ] SyscallEnter.spliceE
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_create_child_with_2_threads
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_clone_parent_flag
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_from_child
[  FAILED  ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_create_thread

The reason has been found, since the schema should be defined as __loongarch64 instead of loongarch

@yzewei
Copy link
Contributor Author

yzewei commented Mar 6, 2024

@FedeDP The current good news is that the kmod module has all passed the test
The not-so-good news is that the code needs to be sorted out first and needs to pass the internal review. Therefore, the pr currently submitted will not be updated for the time being. I hope you understand.

@FedeDP
Copy link
Contributor

FedeDP commented Mar 6, 2024

@yzewei no problem sir! And thank for the great effort you are putting into this!
We will patiently wait!

@yzewei
Copy link
Contributor Author

yzewei commented Mar 6, 2024

@yzewei no problem sir! And thank for the great effort you are putting into this! We will patiently wait!

Thanks for your understanding! There is another news, I almost forgot, the bpf and modern-bpf modules based on loongarch architecture are also on the way.

@yzewei
Copy link
Contributor Author

yzewei commented Mar 18, 2024

@FedeDP We are currently migrating and adapting the ebpf module and have found a problem that may not exist in other architectures, as described below:
Using the bpf function in driver/modern_bpf/helper/extract/extrace_from_kernel.h bpf_core_type_exists may not work when determining whether the kernel structure exists or perform incorrectly under loongarch, see #1719
Therefore, I would like to ask you what good way to simply debug this function so that I can reproduce this problem and feed it back to the relevant personnel of loongarch.
Note: There is no easy-to-use ebpf debugging tool on loongarch, and the debugging method of bcc + python is not feasible. I am very sorry, so I hope you can give some good suggestions!
Thanks again!

@FedeDP
Copy link
Contributor

FedeDP commented Mar 18, 2024

Argh, not really an expert in this area. Summoning @Andreagit97 :)

@yzewei
Copy link
Contributor Author

yzewei commented Mar 18, 2024

Argh, not really an expert in this area. Summoning @Andreagit97 :)

Thanks!

@yzewei
Copy link
Contributor Author

yzewei commented Apr 18, 2024

In the current pr, commit loongarch's support for the driver module
Include test cases, such as:


-----------------------------------------------------
- Setup phase
-----------------------------------------------------

* Configure kernel module tests! Kernel module path: /home/yzw/libs/build/driver/scap.ko
* Using buffer dim: 8388608

-----------------------------------------------------
- Testing phase
-----------------------------------------------------

[==========] Running 383 tests from 4 test suites.
[----------] Global test environment set-up.
[----------] 214 tests from SyscallExit
[ RUN      ] SyscallExit.accept4X_INET
[       OK ] SyscallExit.accept4X_INET (455 ms)
[ RUN      ] SyscallExit.accept4X_INET6
[       OK ] SyscallExit.accept4X_INET6 (469 ms)
[ RUN      ] SyscallExit.accept4X_UNIX
[       OK ] SyscallExit.accept4X_UNIX (509 ms)
[ RUN      ] SyscallExit.accept4X_failure
[       OK ] SyscallExit.accept4X_failure (620 ms)
[ RUN      ] SyscallExit.acceptX_INET
[       OK ] SyscallExit.acceptX_INET (583 ms)
[ RUN      ] SyscallExit.acceptX_INET6
[       OK ] SyscallExit.acceptX_INET6 (607 ms)
[ RUN      ] SyscallExit.acceptX_UNIX
[       OK ] SyscallExit.acceptX_UNIX (583 ms)
[ RUN      ] SyscallExit.acceptX_failure
[       OK ] SyscallExit.acceptX_failure (531 ms)
[ RUN      ] SyscallExit.bindX_INET
[       OK ] SyscallExit.bindX_INET (511 ms)
[ RUN      ] SyscallExit.bindX_INET6
[       OK ] SyscallExit.bindX_INET6 (515 ms)
[ RUN      ] SyscallExit.bindX_UNIX
[       OK ] SyscallExit.bindX_UNIX (523 ms)
[ RUN      ] SyscallExit.bindX_failure
[       OK ] SyscallExit.bindX_failure (511 ms)
[ RUN      ] SyscallExit.bpfX_invalid_cmd
[       OK ] SyscallExit.bpfX_invalid_cmd (559 ms)
[ RUN      ] SyscallExit.bpfX_MAP_CREATE
[       OK ] SyscallExit.bpfX_MAP_CREATE (551 ms)
[ RUN      ] SyscallExit.brkX
[       OK ] SyscallExit.brkX (539 ms)
[ RUN      ] SyscallExit.capsetX
[       OK ] SyscallExit.capsetX (515 ms)
[ RUN      ] SyscallExit.chdirX
[       OK ] SyscallExit.chdirX (519 ms)
[ RUN      ] SyscallExit.chrootX
[       OK ] SyscallExit.chrootX (515 ms)
[ RUN      ] SyscallExit.clone3X_father
[       OK ] SyscallExit.clone3X_father (515 ms)
[ RUN      ] SyscallExit.clone3X_child
[       OK ] SyscallExit.clone3X_child (571 ms)
[ RUN      ] SyscallExit.clone3X_create_child_with_2_threads
[       OK ] SyscallExit.clone3X_create_child_with_2_threads (563 ms)
[ RUN      ] SyscallExit.clone3X_child_clone_parent_flag
[       OK ] SyscallExit.clone3X_child_clone_parent_flag (567 ms)
[ RUN      ] SyscallExit.clone3X_child_new_namespace_from_child
[       OK ] SyscallExit.clone3X_child_new_namespace_from_child (551 ms)
[ RUN      ] SyscallExit.clone3X_child_new_namespace_from_caller
[       OK ] SyscallExit.clone3X_child_new_namespace_from_caller (511 ms)
[ RUN      ] SyscallExit.clone3X_child_new_namespace_create_thread
[       OK ] SyscallExit.clone3X_child_new_namespace_create_thread (567 ms)
[ RUN      ] SyscallExit.cloneX_father
[       OK ] SyscallExit.cloneX_father (503 ms)
[ RUN      ] SyscallExit.cloneX_child
[       OK ] SyscallExit.cloneX_child (499 ms)
[ RUN      ] SyscallExit.closeX
[       OK ] SyscallExit.closeX (523 ms)
[ RUN      ] SyscallExit.connectX_INET
[       OK ] SyscallExit.connectX_INET (523 ms)
[ RUN      ] SyscallExit.connectX_INET6
[       OK ] SyscallExit.connectX_INET6 (527 ms)
[ RUN      ] SyscallExit.connectX_UNIX
[       OK ] SyscallExit.connectX_UNIX (523 ms)
[ RUN      ] SyscallExit.connectX_failure
[       OK ] SyscallExit.connectX_failure (519 ms)
[ RUN      ] SyscallExit.connectX_failure_ECONNREFUSED
[       OK ] SyscallExit.connectX_failure_ECONNREFUSED (523 ms)
[ RUN      ] SyscallExit.connectX_failure_EINPROGRESS
[       OK ] SyscallExit.connectX_failure_EINPROGRESS (519 ms)
[ RUN      ] SyscallExit.copy_file_rangeX
[       OK ] SyscallExit.copy_file_rangeX (519 ms)
[ RUN      ] SyscallExit.delete_moduleX_failure
[       OK ] SyscallExit.delete_moduleX_failure (583 ms)
[ RUN      ] SyscallExit.dup3X
[       OK ] SyscallExit.dup3X (571 ms)
[ RUN      ] SyscallExit.dupX
[       OK ] SyscallExit.dupX (523 ms)
[ RUN      ] SyscallExit.epoll_create1X
[       OK ] SyscallExit.epoll_create1X (515 ms)
[ RUN      ] SyscallExit.eventfd2X_success
[       OK ] SyscallExit.eventfd2X_success (515 ms)
[ RUN      ] SyscallExit.eventfd2X_failure
[       OK ] SyscallExit.eventfd2X_failure (535 ms)
[ RUN      ] SyscallExit.execveX_failure
[       OK ] SyscallExit.execveX_failure (471 ms)
[ RUN      ] SyscallExit.execveX_success
[OUTPUT] SyscallExit.execveX_success test
[       OK ] SyscallExit.execveX_success (471 ms)
[ RUN      ] SyscallExit.execveX_not_upperlayer
[       OK ] SyscallExit.execveX_not_upperlayer (531 ms)
[ RUN      ] SyscallExit.execveX_upperlayer_success
[       OK ] SyscallExit.execveX_upperlayer_success (547 ms)
[ RUN      ] SyscallExit.execveX_success_memfd
[OUTPUT] SyscallExit.execveX_success_memfd
[       OK ] SyscallExit.execveX_success_memfd (479 ms)
[ RUN      ] SyscallExit.execveX_symlink
[OUTPUT] SyscallExit.execveX_success test
[       OK ] SyscallExit.execveX_symlink (463 ms)
[ RUN      ] SyscallExit.execveX_failure_empty_arg
[       OK ] SyscallExit.execveX_failure_empty_arg (463 ms)
[ RUN      ] SyscallExit.execveatX_failure
[       OK ] SyscallExit.execveatX_failure (467 ms)
[ RUN      ] SyscallExit.execveatX_correct_exit
[OUTPUT] SyscallExit.execveatX_success test
[       OK ] SyscallExit.execveatX_correct_exit (479 ms)
[ RUN      ] SyscallExit.execveatX_execve_exit
[OUTPUT] SyscallExit.execveatX_success test
[       OK ] SyscallExit.execveatX_execve_exit (415 ms)
[ RUN      ] SyscallExit.execveatX_success_memfd
[OUTPUT] SyscallExit.execveX_success_memfd
[       OK ] SyscallExit.execveatX_success_memfd (487 ms)
[ RUN      ] SyscallExit.fchdirX
[       OK ] SyscallExit.fchdirX (511 ms)
[ RUN      ] SyscallExit.fchmodX
[       OK ] SyscallExit.fchmodX (527 ms)
[ RUN      ] SyscallExit.fchmodatX
[       OK ] SyscallExit.fchmodatX (515 ms)
[ RUN      ] SyscallExit.fchownX
[       OK ] SyscallExit.fchownX (515 ms)
[ RUN      ] SyscallExit.fchownatX
[       OK ] SyscallExit.fchownatX (507 ms)
[ RUN      ] SyscallExit.fcntlX
[       OK ] SyscallExit.fcntlX (515 ms)
[ RUN      ] SyscallExit.finit_moduleX_failure
[       OK ] SyscallExit.finit_moduleX_failure (511 ms)
[ RUN      ] SyscallExit.finit_moduleX_failure_IGNORE_MODVERSIONS
[       OK ] SyscallExit.finit_moduleX_failure_IGNORE_MODVERSIONS (559 ms)
[ RUN      ] SyscallExit.finit_moduleX_failure_IGNORE_VERMAGIC
[       OK ] SyscallExit.finit_moduleX_failure_IGNORE_VERMAGIC (523 ms)
[ RUN      ] SyscallExit.finit_moduleX_failure_COMPRESSED_FILE
[       OK ] SyscallExit.finit_moduleX_failure_COMPRESSED_FILE (515 ms)
[ RUN      ] SyscallExit.flockX
[       OK ] SyscallExit.flockX (515 ms)
[ RUN      ] SyscallExit.fsconfigX_FSCONFIG_SET_STRING
[       OK ] SyscallExit.fsconfigX_FSCONFIG_SET_STRING (523 ms)
[ RUN      ] SyscallExit.fsconfigX_failure
[       OK ] SyscallExit.fsconfigX_failure (511 ms)
[ RUN      ] SyscallExit.genericX
[       OK ] SyscallExit.genericX (515 ms)
[ RUN      ] SyscallExit.getcwdX_success
[       OK ] SyscallExit.getcwdX_success (527 ms)
[ RUN      ] SyscallExit.getcwdX_fail
[       OK ] SyscallExit.getcwdX_fail (515 ms)
[ RUN      ] SyscallExit.getdents64X
[       OK ] SyscallExit.getdents64X (559 ms)
[ RUN      ] SyscallExit.getegidX
[       OK ] SyscallExit.getegidX (515 ms)
[ RUN      ] SyscallExit.geteuidX
[       OK ] SyscallExit.geteuidX (519 ms)
[ RUN      ] SyscallExit.getgidX
[       OK ] SyscallExit.getgidX (515 ms)
[ RUN      ] SyscallExit.getpeernameX
[       OK ] SyscallExit.getpeernameX (519 ms)
[ RUN      ] SyscallExit.getresgidX
[       OK ] SyscallExit.getresgidX (515 ms)
[ RUN      ] SyscallExit.getresuidX
[       OK ] SyscallExit.getresuidX (523 ms)
[ RUN      ] SyscallExit.getsocknameX
[       OK ] SyscallExit.getsocknameX (523 ms)
[ RUN      ] SyscallExit.getsockoptX_success
[       OK ] SyscallExit.getsockoptX_success (523 ms)
[ RUN      ] SyscallExit.getsockoptX_SO_RCVTIMEO
[       OK ] SyscallExit.getsockoptX_SO_RCVTIMEO (515 ms)
[ RUN      ] SyscallExit.getsockoptX_SO_COOKIE
[       OK ] SyscallExit.getsockoptX_SO_COOKIE (523 ms)
[ RUN      ] SyscallExit.getsockoptX_SO_PASSCRED
[       OK ] SyscallExit.getsockoptX_SO_PASSCRED (531 ms)
[ RUN      ] SyscallExit.getsockoptX_UNKNOWN_OPTION
[       OK ] SyscallExit.getsockoptX_UNKNOWN_OPTION (511 ms)
[ RUN      ] SyscallExit.getsockoptX_SOL_UNKNOWN
[       OK ] SyscallExit.getsockoptX_SOL_UNKNOWN (515 ms)
[ RUN      ] SyscallExit.getsockoptX_ZERO_OPTLEN
[       OK ] SyscallExit.getsockoptX_ZERO_OPTLEN (511 ms)
[ RUN      ] SyscallExit.getuidX
[       OK ] SyscallExit.getuidX (535 ms)
[ RUN      ] SyscallExit.init_moduleX_failure
[       OK ] SyscallExit.init_moduleX_failure (511 ms)
[ RUN      ] SyscallExit.inotify_init1X_success
[       OK ] SyscallExit.inotify_init1X_success (519 ms)
[ RUN      ] SyscallExit.inotify_init1X_failure
[       OK ] SyscallExit.inotify_init1X_failure (515 ms)
[ RUN      ] SyscallExit.io_uring_enterX
[       OK ] SyscallExit.io_uring_enterX (515 ms)
[ RUN      ] SyscallExit.io_uring_registerX
[       OK ] SyscallExit.io_uring_registerX (515 ms)
[ RUN      ] SyscallExit.io_uring_setupX
[       OK ] SyscallExit.io_uring_setupX (515 ms)
[ RUN      ] SyscallExit.io_uring_setupX_with_NULL_pointer
[       OK ] SyscallExit.io_uring_setupX_with_NULL_pointer (515 ms)
[ RUN      ] SyscallExit.ioctlX
[       OK ] SyscallExit.ioctlX (523 ms)
[ RUN      ] SyscallExit.killX
[       OK ] SyscallExit.killX (519 ms)
[ RUN      ] SyscallExit.linkatX
[       OK ] SyscallExit.linkatX (523 ms)
[ RUN      ] SyscallExit.listenX
[       OK ] SyscallExit.listenX (515 ms)
[ RUN      ] SyscallExit.lseekX
[       OK ] SyscallExit.lseekX (515 ms)
[ RUN      ] SyscallExit.memfd_createX_success
[       OK ] SyscallExit.memfd_createX_success (519 ms)
[ RUN      ] SyscallExit.memfd_createX_failure
[       OK ] SyscallExit.memfd_createX_failure (515 ms)
[ RUN      ] SyscallExit.mkdiratX
[       OK ] SyscallExit.mkdiratX (523 ms)
[ RUN      ] SyscallExit.mknodatX_failure
[       OK ] SyscallExit.mknodatX_failure (527 ms)
[ RUN      ] SyscallExit.mknodatX_failure_S_IFREG
[       OK ] SyscallExit.mknodatX_failure_S_IFREG (519 ms)
[ RUN      ] SyscallExit.mknodatX_failure_S_IFCHR
[       OK ] SyscallExit.mknodatX_failure_S_IFCHR (515 ms)
[ RUN      ] SyscallExit.mknodatX_failure_S_IFBLK
[       OK ] SyscallExit.mknodatX_failure_S_IFBLK (511 ms)
[ RUN      ] SyscallExit.mknodatX_failure_S_IFIFO
[       OK ] SyscallExit.mknodatX_failure_S_IFIFO (523 ms)
[ RUN      ] SyscallExit.mknodatX_failure_S_IFSOCK
[       OK ] SyscallExit.mknodatX_failure_S_IFSOCK (511 ms)
[ RUN      ] SyscallExit.mlock2X
[       OK ] SyscallExit.mlock2X (515 ms)
[ RUN      ] SyscallExit.mlockX
[       OK ] SyscallExit.mlockX (511 ms)
[ RUN      ] SyscallExit.mlockallX
[       OK ] SyscallExit.mlockallX (515 ms)
[ RUN      ] SyscallExit.mmapX
[       OK ] SyscallExit.mmapX (563 ms)
[ RUN      ] SyscallExit.mountX
[       OK ] SyscallExit.mountX (515 ms)
[ RUN      ] SyscallExit.mprotectX
[       OK ] SyscallExit.mprotectX (515 ms)
[ RUN      ] SyscallExit.munlockX
[       OK ] SyscallExit.munlockX (515 ms)
[ RUN      ] SyscallExit.munlockallX
[       OK ] SyscallExit.munlockallX (515 ms)
[ RUN      ] SyscallExit.munmapX
[       OK ] SyscallExit.munmapX (515 ms)
[ RUN      ] SyscallExit.nanosleepX
[       OK ] SyscallExit.nanosleepX (523 ms)
[ RUN      ] SyscallExit.open_by_handle_atX_success
[       OK ] SyscallExit.open_by_handle_atX_success (515 ms)
[ RUN      ] SyscallExit.open_by_handle_atX_success_mp
[       OK ] SyscallExit.open_by_handle_atX_success_mp (527 ms)
[ RUN      ] SyscallExit.open_by_handle_atX_failure
[       OK ] SyscallExit.open_by_handle_atX_failure (507 ms)
[ RUN      ] SyscallExit.openat2X_success
[       OK ] SyscallExit.openat2X_success (515 ms)
[ RUN      ] SyscallExit.openat2X_failure
[       OK ] SyscallExit.openat2X_failure (511 ms)
[ RUN      ] SyscallExit.openat2X_create_success
[       OK ] SyscallExit.openat2X_create_success (519 ms)
[ RUN      ] SyscallExit.pidfd_getfdX
[       OK ] SyscallExit.pidfd_getfdX (511 ms)
[ RUN      ] SyscallExit.pidfd_openX_failure
[       OK ] SyscallExit.pidfd_openX_failure (523 ms)
[ RUN      ] SyscallExit.pipe2X_failure
[       OK ] SyscallExit.pipe2X_failure (511 ms)
[ RUN      ] SyscallExit.ppollX
[       OK ] SyscallExit.ppollX (563 ms)
[ RUN      ] SyscallExit.prctlX_failure
[       OK ] SyscallExit.prctlX_failure (515 ms)
[ RUN      ] SyscallExit.prctlX_get_child_subreaper
[       OK ] SyscallExit.prctlX_get_child_subreaper (519 ms)
[ RUN      ] SyscallExit.prctlX_set_child_subreaper
[       OK ] SyscallExit.prctlX_set_child_subreaper (519 ms)
[ RUN      ] SyscallExit.prctlX_set_name
[       OK ] SyscallExit.prctlX_set_name (555 ms)
[ RUN      ] SyscallExit.preadX_fail
[       OK ] SyscallExit.preadX_fail (631 ms)
[ RUN      ] SyscallExit.preadvX_fail
[       OK ] SyscallExit.preadvX_fail (551 ms)
[ RUN      ] SyscallExit.process_vm_readvX_failure
[       OK ] SyscallExit.process_vm_readvX_failure (539 ms)
[ RUN      ] SyscallExit.process_vm_readvX_success
[       OK ] SyscallExit.process_vm_readvX_success (519 ms)
[ RUN      ] SyscallExit.process_vm_writevX_failure
[       OK ] SyscallExit.process_vm_writevX_failure (515 ms)
[ RUN      ] SyscallExit.process_vm_writevX_success
[       OK ] SyscallExit.process_vm_writevX_success (531 ms)
[ RUN      ] SyscallExit.ptraceX_failure
[       OK ] SyscallExit.ptraceX_failure (523 ms)
[ RUN      ] SyscallExit.pwrite64X_no_snaplen
[       OK ] SyscallExit.pwrite64X_no_snaplen (511 ms)
[ RUN      ] SyscallExit.pwrite64X_snaplen
[       OK ] SyscallExit.pwrite64X_snaplen (523 ms)
[ RUN      ] SyscallExit.pwrite64X_fail
[       OK ] SyscallExit.pwrite64X_fail (515 ms)
[ RUN      ] SyscallExit.pwritevX_no_snaplen
[       OK ] SyscallExit.pwritevX_no_snaplen (515 ms)
[ RUN      ] SyscallExit.pwritevX_snaplen
[       OK ] SyscallExit.pwritevX_snaplen (515 ms)
[ RUN      ] SyscallExit.pwritevX_empty
[       OK ] SyscallExit.pwritevX_empty (527 ms)
[ RUN      ] SyscallExit.quotactlX
[       OK ] SyscallExit.quotactlX (503 ms)
[ RUN      ] SyscallExit.readvX_fail
[       OK ] SyscallExit.readvX_fail (531 ms)
[ RUN      ] SyscallExit.readvX_success
[       OK ] SyscallExit.readvX_success (571 ms)
[ RUN      ] SyscallExit.recvfromX_tcp_connection_no_snaplen
[       OK ] SyscallExit.recvfromX_tcp_connection_no_snaplen (515 ms)
[ RUN      ] SyscallExit.recvfromX_tcp_connection_snaplen
[       OK ] SyscallExit.recvfromX_tcp_connection_snaplen (519 ms)
[ RUN      ] SyscallExit.recvfromX_tcp_connection_NULL_sockaddr
[       OK ] SyscallExit.recvfromX_tcp_connection_NULL_sockaddr (547 ms)
[ RUN      ] SyscallExit.recvfromX_udp_connection_snaplen
[       OK ] SyscallExit.recvfromX_udp_connection_snaplen (519 ms)
[ RUN      ] SyscallExit.recvfromX_udp_connection_NULL_sockaddr
[       OK ] SyscallExit.recvfromX_udp_connection_NULL_sockaddr (555 ms)
[ RUN      ] SyscallExit.recvfromX_fail
[       OK ] SyscallExit.recvfromX_fail (519 ms)
[ RUN      ] SyscallExit.recvmmsgX
[       OK ] SyscallExit.recvmmsgX (463 ms)
[ RUN      ] SyscallExit.recvmsgX_tcp_connection_no_snaplen
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/recvmsg_x.cpp:97: Skipped
[RECVMSG_X]: we receive an empty tuple but we have all the data in the kernel to obtain the correct tuple

[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_no_snaplen (463 ms)
[ RUN      ] SyscallExit.recvmsgX_tcp_connection_snaplen
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/recvmsg_x.cpp:195: Skipped
[RECVMSG_X]: we receive an empty tuple but we have all the data in the kernel to obtain the correct tuple

[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_snaplen (519 ms)
[ RUN      ] SyscallExit.recvmsgX_tcp_connection_NULL_sockaddr
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/recvmsg_x.cpp:293: Skipped
[RECVMSG_X]: we receive an empty tuple because the pointer to sockaddr is NULL, but we should rely on kernel structs

[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_NULL_sockaddr (519 ms)
[ RUN      ] SyscallExit.recvmsgX_udp_connection_snaplen
[       OK ] SyscallExit.recvmsgX_udp_connection_snaplen (499 ms)
[ RUN      ] SyscallExit.recvmsgX_udp_connection_NULL_sockaddr
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/recvmsg_x.cpp:469: Skipped
[RECVMSG_X]: we send an empty tuple, but we can at least send the dest ip and source

[  SKIPPED ] SyscallExit.recvmsgX_udp_connection_NULL_sockaddr (511 ms)
[ RUN      ] SyscallExit.recvmsgX_fail
[       OK ] SyscallExit.recvmsgX_fail (511 ms)
[ RUN      ] SyscallExit.recvmsg_ancillary_data
[       OK ] SyscallExit.recvmsg_ancillary_data (511 ms)
[ RUN      ] SyscallExit.renameat2X
[       OK ] SyscallExit.renameat2X (503 ms)
[ RUN      ] SyscallExit.seccompX
[       OK ] SyscallExit.seccompX (511 ms)
[ RUN      ] SyscallExit.semctlX
[       OK ] SyscallExit.semctlX (419 ms)
[ RUN      ] SyscallExit.semgetX
[       OK ] SyscallExit.semgetX (399 ms)
[ RUN      ] SyscallExit.semopX_null_pointer
[       OK ] SyscallExit.semopX_null_pointer (535 ms)
[ RUN      ] SyscallExit.semopX_wrong_nops
[       OK ] SyscallExit.semopX_wrong_nops (511 ms)
[ RUN      ] SyscallExit.semopX_1_operation
[       OK ] SyscallExit.semopX_1_operation (579 ms)
[ RUN      ] SyscallExit.semopX_2_operation
[       OK ] SyscallExit.semopX_2_operation (515 ms)
[ RUN      ] SyscallExit.sendfileX_null_pointer
[       OK ] SyscallExit.sendfileX_null_pointer (515 ms)
[ RUN      ] SyscallExit.sendfileX
[       OK ] SyscallExit.sendfileX (511 ms)
[ RUN      ] SyscallExit.sendmmsgX
[       OK ] SyscallExit.sendmmsgX (519 ms)
[ RUN      ] SyscallExit.sendmsgX_no_snaplen
[       OK ] SyscallExit.sendmsgX_no_snaplen (507 ms)
[ RUN      ] SyscallExit.sendmsgX_snaplen
[       OK ] SyscallExit.sendmsgX_snaplen (515 ms)
[ RUN      ] SyscallExit.sendmsgX_fail
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/sendmsg_x.cpp:194: Skipped
[SENDMSG_X]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallExit.sendmsgX_fail (567 ms)
[ RUN      ] SyscallExit.sendmsgX_null_iovec
/home/yzw/libs/test/drivers/test_suites/syscall_exit_suite/sendmsg_x.cpp:252: Skipped
[SENDMSG_X]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallExit.sendmsgX_null_iovec (547 ms)
[ RUN      ] SyscallExit.sendmsgX_null_msghdr
[       OK ] SyscallExit.sendmsgX_null_msghdr (515 ms)
[ RUN      ] SyscallExit.sendtoX_no_snaplen
[       OK ] SyscallExit.sendtoX_no_snaplen (511 ms)
[ RUN      ] SyscallExit.sendtoX_snaplen
[       OK ] SyscallExit.sendtoX_snaplen (519 ms)
[ RUN      ] SyscallExit.sendtoX_fail
[       OK ] SyscallExit.sendtoX_fail (543 ms)
[ RUN      ] SyscallExit.sendtoX_empty
[       OK ] SyscallExit.sendtoX_empty (523 ms)
[ RUN      ] SyscallExit.setgidX
[       OK ] SyscallExit.setgidX (507 ms)
[ RUN      ] SyscallExit.setnsX
[       OK ] SyscallExit.setnsX (515 ms)
[ RUN      ] SyscallExit.setpgidX
[       OK ] SyscallExit.setpgidX (511 ms)
[ RUN      ] SyscallExit.setresgidX
[       OK ] SyscallExit.setresgidX (519 ms)
[ RUN      ] SyscallExit.setresuidX
[       OK ] SyscallExit.setresuidX (523 ms)
[ RUN      ] SyscallExit.setsidX
[       OK ] SyscallExit.setsidX (515 ms)
[ RUN      ] SyscallExit.setsockoptX_SO_ERROR
[       OK ] SyscallExit.setsockoptX_SO_ERROR (511 ms)
[ RUN      ] SyscallExit.setsockoptX_SO_RCVTIMEO
[       OK ] SyscallExit.setsockoptX_SO_RCVTIMEO (519 ms)
[ RUN      ] SyscallExit.setsockoptX_SO_COOKIE
[       OK ] SyscallExit.setsockoptX_SO_COOKIE (551 ms)
[ RUN      ] SyscallExit.setsockoptX_SO_PASSCRED
[       OK ] SyscallExit.setsockoptX_SO_PASSCRED (559 ms)
[ RUN      ] SyscallExit.setsockoptX_UNKNOWN_OPTION
[       OK ] SyscallExit.setsockoptX_UNKNOWN_OPTION (515 ms)
[ RUN      ] SyscallExit.setsockoptX_SOL_UNKNOWN
[       OK ] SyscallExit.setsockoptX_SOL_UNKNOWN (527 ms)
[ RUN      ] SyscallExit.setsockoptX_ZERO_OPTLEN
[       OK ] SyscallExit.setsockoptX_ZERO_OPTLEN (539 ms)
[ RUN      ] SyscallExit.setuidX
[       OK ] SyscallExit.setuidX (507 ms)
[ RUN      ] SyscallExit.shutdownX
[       OK ] SyscallExit.shutdownX (515 ms)
[ RUN      ] SyscallExit.signalfd4X
[       OK ] SyscallExit.signalfd4X (515 ms)
[ RUN      ] SyscallExit.socketX
[       OK ] SyscallExit.socketX (555 ms)
[ RUN      ] SyscallExit.socketpairX_success
[       OK ] SyscallExit.socketpairX_success (511 ms)
[ RUN      ] SyscallExit.socketpairX_failure
[       OK ] SyscallExit.socketpairX_failure (531 ms)
[ RUN      ] SyscallExit.spliceX
[       OK ] SyscallExit.spliceX (543 ms)
[ RUN      ] SyscallExit.symlinkatX
[       OK ] SyscallExit.symlinkatX (515 ms)
[ RUN      ] SyscallExit.tgkillX
[       OK ] SyscallExit.tgkillX (511 ms)
[ RUN      ] SyscallExit.timerfd_createX
[       OK ] SyscallExit.timerfd_createX (515 ms)
[ RUN      ] SyscallExit.tkillX
[       OK ] SyscallExit.tkillX (511 ms)
[ RUN      ] SyscallExit.umount2X
[       OK ] SyscallExit.umount2X (515 ms)
[ RUN      ] SyscallExit.unlinkatX
[       OK ] SyscallExit.unlinkatX (507 ms)
[ RUN      ] SyscallExit.unshareX
[       OK ] SyscallExit.unshareX (515 ms)
[ RUN      ] SyscallExit.userfaultfdX
[       OK ] SyscallExit.userfaultfdX (515 ms)
[ RUN      ] SyscallExit.writeX_no_snaplen
[       OK ] SyscallExit.writeX_no_snaplen (515 ms)
[ RUN      ] SyscallExit.writeX_snaplen
[       OK ] SyscallExit.writeX_snaplen (515 ms)
[ RUN      ] SyscallExit.writeX_fail
[       OK ] SyscallExit.writeX_fail (515 ms)
[ RUN      ] SyscallExit.writeX_empty
[       OK ] SyscallExit.writeX_empty (515 ms)
[ RUN      ] SyscallExit.writevX_no_snaplen
[       OK ] SyscallExit.writevX_no_snaplen (515 ms)
[ RUN      ] SyscallExit.writevX_snaplen
[       OK ] SyscallExit.writevX_snaplen (515 ms)
[ RUN      ] SyscallExit.writevX_empty
[       OK ] SyscallExit.writevX_empty (515 ms)
[----------] 214 tests from SyscallExit (111575 ms total)

[----------] 128 tests from SyscallEnter
[ RUN      ] SyscallEnter.futexX
[       OK ] SyscallEnter.futexX (527 ms)
[ RUN      ] SyscallEnter.mknodatE_failure
[       OK ] SyscallEnter.mknodatE_failure (515 ms)
[ RUN      ] SyscallEnter.accept4E
[       OK ] SyscallEnter.accept4E (511 ms)
[ RUN      ] SyscallEnter.acceptE
[       OK ] SyscallEnter.acceptE (515 ms)
[ RUN      ] SyscallEnter.bindE
[       OK ] SyscallEnter.bindE (515 ms)
[ RUN      ] SyscallEnter.bpfE
[       OK ] SyscallEnter.bpfE (531 ms)
[ RUN      ] SyscallEnter.brkE
[       OK ] SyscallEnter.brkE (507 ms)
[ RUN      ] SyscallEnter.capsetE
[       OK ] SyscallEnter.capsetE (512 ms)
[ RUN      ] SyscallEnter.chdirE
[       OK ] SyscallEnter.chdirE (511 ms)
[ RUN      ] SyscallEnter.chrootE
[       OK ] SyscallEnter.chrootE (515 ms)
[ RUN      ] SyscallEnter.clone3E
[       OK ] SyscallEnter.clone3E (487 ms)
[ RUN      ] SyscallEnter.cloneE
[       OK ] SyscallEnter.cloneE (511 ms)
[ RUN      ] SyscallEnter.closeE
[       OK ] SyscallEnter.closeE (531 ms)
[ RUN      ] SyscallEnter.connectE_INET
/home/yzw/libs/test/drivers/test_suites/syscall_enter_suite/connect_e.cpp:48: Skipped
[CONNECT_E]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallEnter.connectE_INET (507 ms)
[ RUN      ] SyscallEnter.connectE_INET6
/home/yzw/libs/test/drivers/test_suites/syscall_enter_suite/connect_e.cpp:99: Skipped
[CONNECT_E]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallEnter.connectE_INET6 (511 ms)
[ RUN      ] SyscallEnter.connectE_UNIX
/home/yzw/libs/test/drivers/test_suites/syscall_enter_suite/connect_e.cpp:153: Skipped
[CONNECT_E]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallEnter.connectE_UNIX (535 ms)
[ RUN      ] SyscallEnter.connectE_UNIX_max_path
/home/yzw/libs/test/drivers/test_suites/syscall_enter_suite/connect_e.cpp:215: Skipped
[CONNECT_E]: what we receive is correct but we need to reimplement it, see the code

[  SKIPPED ] SyscallEnter.connectE_UNIX_max_path (511 ms)
[ RUN      ] SyscallEnter.connectE_null_sockaddr
[       OK ] SyscallEnter.connectE_null_sockaddr (531 ms)
[ RUN      ] SyscallEnter.copy_file_rangeE
[       OK ] SyscallEnter.copy_file_rangeE (519 ms)
[ RUN      ] SyscallEnter.dup3E
[       OK ] SyscallEnter.dup3E (523 ms)
[ RUN      ] SyscallEnter.dupE
[       OK ] SyscallEnter.dupE (511 ms)
[ RUN      ] SyscallEnter.epoll_create1E
[       OK ] SyscallEnter.epoll_create1E (511 ms)
[ RUN      ] SyscallEnter.eventfd2E
[       OK ] SyscallEnter.eventfd2E (507 ms)
[ RUN      ] SyscallEnter.execveE
[       OK ] SyscallEnter.execveE (467 ms)
[ RUN      ] SyscallEnter.execveatE
[       OK ] SyscallEnter.execveatE (467 ms)
[ RUN      ] SyscallEnter.fchdirE
[       OK ] SyscallEnter.fchdirE (515 ms)
[ RUN      ] SyscallEnter.fchmodE
[       OK ] SyscallEnter.fchmodE (511 ms)
[ RUN      ] SyscallEnter.fchmodatE
[       OK ] SyscallEnter.fchmodatE (519 ms)
[ RUN      ] SyscallEnter.fchownE
[       OK ] SyscallEnter.fchownE (515 ms)
[ RUN      ] SyscallEnter.fchownatE
[       OK ] SyscallEnter.fchownatE (511 ms)
[ RUN      ] SyscallEnter.fcntlE
[       OK ] SyscallEnter.fcntlE (519 ms)
[ RUN      ] SyscallEnter.finit_moduleE
[       OK ] SyscallEnter.finit_moduleE (515 ms)
[ RUN      ] SyscallEnter.flockE
[       OK ] SyscallEnter.flockE (515 ms)
[ RUN      ] SyscallEnter.fsconfigE
[       OK ] SyscallEnter.fsconfigE (519 ms)
[ RUN      ] SyscallEnter.futexE
[       OK ] SyscallEnter.futexE (519 ms)
[ RUN      ] SyscallEnter.genericE
[       OK ] SyscallEnter.genericE (511 ms)
[ RUN      ] SyscallEnter.getcwdE
[       OK ] SyscallEnter.getcwdE (515 ms)
[ RUN      ] SyscallEnter.getdents64E
[       OK ] SyscallEnter.getdents64E (519 ms)
[ RUN      ] SyscallEnter.getegidE
[       OK ] SyscallEnter.getegidE (515 ms)
[ RUN      ] SyscallEnter.geteuidE
[       OK ] SyscallEnter.geteuidE (515 ms)
[ RUN      ] SyscallEnter.getgidE
[       OK ] SyscallEnter.getgidE (527 ms)
[ RUN      ] SyscallEnter.getpeernameE
[       OK ] SyscallEnter.getpeernameE (503 ms)
[ RUN      ] SyscallEnter.getresgidE
[       OK ] SyscallEnter.getresgidE (515 ms)
[ RUN      ] SyscallEnter.getresuidE
[       OK ] SyscallEnter.getresuidE (511 ms)
[ RUN      ] SyscallEnter.getsocknameE
[       OK ] SyscallEnter.getsocknameE (515 ms)
[ RUN      ] SyscallEnter.getsockoptE
[       OK ] SyscallEnter.getsockoptE (511 ms)
[ RUN      ] SyscallEnter.getuidE
[       OK ] SyscallEnter.getuidE (519 ms)
[ RUN      ] SyscallEnter.init_moduleE
[       OK ] SyscallEnter.init_moduleE (551 ms)
[ RUN      ] SyscallEnter.inotify_init1E_failure
[       OK ] SyscallEnter.inotify_init1E_failure (515 ms)
[ RUN      ] SyscallEnter.io_uring_enterE
[       OK ] SyscallEnter.io_uring_enterE (519 ms)
[ RUN      ] SyscallEnter.io_uring_registerE
[       OK ] SyscallEnter.io_uring_registerE (515 ms)
[ RUN      ] SyscallEnter.io_uring_setupE
[       OK ] SyscallEnter.io_uring_setupE (507 ms)
[ RUN      ] SyscallEnter.ioctlE
[       OK ] SyscallEnter.ioctlE (523 ms)
[ RUN      ] SyscallEnter.killE
[       OK ] SyscallEnter.killE (511 ms)
[ RUN      ] SyscallEnter.linkatE
[       OK ] SyscallEnter.linkatE (527 ms)
[ RUN      ] SyscallEnter.listenE
[       OK ] SyscallEnter.listenE (511 ms)
[ RUN      ] SyscallEnter.lseekE
[       OK ] SyscallEnter.lseekE (515 ms)
[ RUN      ] SyscallEnter.memfd_createE
[       OK ] SyscallEnter.memfd_createE (527 ms)
[ RUN      ] SyscallEnter.mkdiratE
[       OK ] SyscallEnter.mkdiratE (515 ms)
[ RUN      ] SyscallEnter.mlock2E
[       OK ] SyscallEnter.mlock2E (515 ms)
[ RUN      ] SyscallEnter.mlockE
[       OK ] SyscallEnter.mlockE (515 ms)
[ RUN      ] SyscallEnter.mlockallE
[       OK ] SyscallEnter.mlockallE (519 ms)
[ RUN      ] SyscallEnter.mmapE
[       OK ] SyscallEnter.mmapE (523 ms)
[ RUN      ] SyscallEnter.mountE
[       OK ] SyscallEnter.mountE (511 ms)
[ RUN      ] SyscallEnter.mprotectE
[       OK ] SyscallEnter.mprotectE (515 ms)
[ RUN      ] SyscallEnter.munlockE
[       OK ] SyscallEnter.munlockE (523 ms)
[ RUN      ] SyscallEnter.munlockallE
[       OK ] SyscallEnter.munlockallE (527 ms)
[ RUN      ] SyscallEnter.munmapE
[       OK ] SyscallEnter.munmapE (523 ms)
[ RUN      ] SyscallEnter.nanosleepE
[       OK ] SyscallEnter.nanosleepE (499 ms)
[ RUN      ] SyscallEnter.nanosleepE_fail
[       OK ] SyscallEnter.nanosleepE_fail (511 ms)
[ RUN      ] SyscallEnter.open_by_handle_atE
[       OK ] SyscallEnter.open_by_handle_atE (507 ms)
[ RUN      ] SyscallEnter.openat2E
[       OK ] SyscallEnter.openat2E (519 ms)
[ RUN      ] SyscallEnter.openatE
[       OK ] SyscallEnter.openatE (519 ms)
[ RUN      ] SyscallEnter.pidfd_getfdE
[       OK ] SyscallEnter.pidfd_getfdE (511 ms)
[ RUN      ] SyscallEnter.pidfd_openE
[       OK ] SyscallEnter.pidfd_openE (515 ms)
[ RUN      ] SyscallEnter.pipe2E
[       OK ] SyscallEnter.pipe2E (511 ms)
[ RUN      ] SyscallEnter.ppollE_null_pointers
[       OK ] SyscallEnter.ppollE_null_pointers (515 ms)
[ RUN      ] SyscallEnter.ppollE_valid_pointers
[       OK ] SyscallEnter.ppollE_valid_pointers (523 ms)
[ RUN      ] SyscallEnter.prctlE
[       OK ] SyscallEnter.prctlE (511 ms)
[ RUN      ] SyscallEnter.preadE
[       OK ] SyscallEnter.preadE (515 ms)
[ RUN      ] SyscallEnter.preadvE
[       OK ] SyscallEnter.preadvE (515 ms)
[ RUN      ] SyscallEnter.prlimit64E
[       OK ] SyscallEnter.prlimit64E (511 ms)
[ RUN      ] SyscallEnter.ptraceE
[       OK ] SyscallEnter.ptraceE (515 ms)
[ RUN      ] SyscallEnter.pwrite64E
[       OK ] SyscallEnter.pwrite64E (523 ms)
[ RUN      ] SyscallEnter.pwritevE_empty_iovec
[       OK ] SyscallEnter.pwritevE_empty_iovec (515 ms)
[ RUN      ] SyscallEnter.pwritevE_full_iovec
[       OK ] SyscallEnter.pwritevE_full_iovec (523 ms)
[ RUN      ] SyscallEnter.quotactlE
[       OK ] SyscallEnter.quotactlE (567 ms)
[ RUN      ] SyscallEnter.readE
[       OK ] SyscallEnter.readE (523 ms)
[ RUN      ] SyscallEnter.readvE
[       OK ] SyscallEnter.readvE (571 ms)
[ RUN      ] SyscallEnter.recvfromE
[       OK ] SyscallEnter.recvfromE (527 ms)
[ RUN      ] SyscallEnter.recvmmsgE
[       OK ] SyscallEnter.recvmmsgE (535 ms)
[ RUN      ] SyscallEnter.recvmsgE
[       OK ] SyscallEnter.recvmsgE (531 ms)
[ RUN      ] SyscallEnter.renameat2E
[       OK ] SyscallEnter.renameat2E (515 ms)
[ RUN      ] SyscallEnter.seccompE
[       OK ] SyscallEnter.seccompE (511 ms)
[ RUN      ] SyscallEnter.semctlE
[       OK ] SyscallEnter.semctlE (515 ms)
[ RUN      ] SyscallEnter.semgetE
[       OK ] SyscallEnter.semgetE (523 ms)
[ RUN      ] SyscallEnter.semopE
[       OK ] SyscallEnter.semopE (579 ms)
[ RUN      ] SyscallEnter.sendfileE_null_pointer
[       OK ] SyscallEnter.sendfileE_null_pointer (539 ms)
[ RUN      ] SyscallEnter.sendfileE
[       OK ] SyscallEnter.sendfileE (555 ms)
[ RUN      ] SyscallEnter.sendmmsgE
[       OK ] SyscallEnter.sendmmsgE (515 ms)
[ RUN      ] SyscallEnter.sendmsgE
[       OK ] SyscallEnter.sendmsgE (523 ms)
[ RUN      ] SyscallEnter.sendmsgE_udp
[       OK ] SyscallEnter.sendmsgE_udp (535 ms)
[ RUN      ] SyscallEnter.sendtoE
[       OK ] SyscallEnter.sendtoE (519 ms)
[ RUN      ] SyscallEnter.sendtoE_udp
[       OK ] SyscallEnter.sendtoE_udp (523 ms)
[ RUN      ] SyscallEnter.setgidE
[       OK ] SyscallEnter.setgidE (519 ms)
[ RUN      ] SyscallEnter.setnsE
[       OK ] SyscallEnter.setnsE (515 ms)
[ RUN      ] SyscallEnter.setpgidE
[       OK ] SyscallEnter.setpgidE (527 ms)
[ RUN      ] SyscallEnter.setresgidE
[       OK ] SyscallEnter.setresgidE (527 ms)
[ RUN      ] SyscallEnter.setresuidE
[       OK ] SyscallEnter.setresuidE (515 ms)
[ RUN      ] SyscallEnter.setsidE
[       OK ] SyscallEnter.setsidE (511 ms)
[ RUN      ] SyscallEnter.setsockoptE
[       OK ] SyscallEnter.setsockoptE (511 ms)
[ RUN      ] SyscallEnter.setuidE
[       OK ] SyscallEnter.setuidE (527 ms)
[ RUN      ] SyscallEnter.shutdownE
[       OK ] SyscallEnter.shutdownE (511 ms)
[ RUN      ] SyscallEnter.signalfd4E
[       OK ] SyscallEnter.signalfd4E (515 ms)
[ RUN      ] SyscallEnter.socketE
[       OK ] SyscallEnter.socketE (511 ms)
[ RUN      ] SyscallEnter.socketpairE
[       OK ] SyscallEnter.socketpairE (511 ms)
[ RUN      ] SyscallEnter.spliceE
[       OK ] SyscallEnter.spliceE (511 ms)
[ RUN      ] SyscallEnter.symlinkatE
[       OK ] SyscallEnter.symlinkatE (535 ms)
[ RUN      ] SyscallEnter.tgkillE
[       OK ] SyscallEnter.tgkillE (515 ms)
[ RUN      ] SyscallEnter.timerfd_createE
[       OK ] SyscallEnter.timerfd_createE (515 ms)
[ RUN      ] SyscallEnter.tkillE
[       OK ] SyscallEnter.tkillE (511 ms)
[ RUN      ] SyscallEnter.umount2E
[       OK ] SyscallEnter.umount2E (515 ms)
[ RUN      ] SyscallEnter.unlinkatE
[       OK ] SyscallEnter.unlinkatE (515 ms)
[ RUN      ] SyscallEnter.unshareE
[       OK ] SyscallEnter.unshareE (515 ms)
[ RUN      ] SyscallEnter.userfaultfdE
[       OK ] SyscallEnter.userfaultfdE (511 ms)
[ RUN      ] SyscallEnter.writeE
[       OK ] SyscallEnter.writeE (515 ms)
[ RUN      ] SyscallEnter.writevE_empty_iovec
[       OK ] SyscallEnter.writevE_empty_iovec (507 ms)
[ RUN      ] SyscallEnter.writevE_full_iovec
[       OK ] SyscallEnter.writevE_full_iovec (507 ms)
[----------] 128 tests from SyscallEnter (66427 ms total)

[----------] 13 tests from GenericTracepoints
[ RUN      ] GenericTracepoints.sched_proc_exit_no_children
[       OK ] GenericTracepoints.sched_proc_exit_no_children (539 ms)
[ RUN      ] GenericTracepoints.sched_proc_exit_prctl_subreaper
[       OK ] GenericTracepoints.sched_proc_exit_prctl_subreaper (1571 ms)
[ RUN      ] GenericTracepoints.sched_proc_exit_child_namespace_reaper
[       OK ] GenericTracepoints.sched_proc_exit_child_namespace_reaper (1587 ms)
[ RUN      ] GenericTracepoints.sched_proc_exit_child_namespace_reaper_die
[       OK ] GenericTracepoints.sched_proc_exit_child_namespace_reaper_die (559 ms)
[ RUN      ] GenericTracepoints.sched_proc_exit_reaper_in_the_same_group
[       OK ] GenericTracepoints.sched_proc_exit_reaper_in_the_same_group (2539 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone3
[       OK ] GenericTracepoints.sched_proc_fork_case_clone3 (503 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone3_create_child_with_2_threads
[       OK ] GenericTracepoints.sched_proc_fork_case_clone3_create_child_with_2_threads (535 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone3_child_clone_parent_flag
[       OK ] GenericTracepoints.sched_proc_fork_case_clone3_child_clone_parent_flag (499 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_from_child
[       OK ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_from_child (507 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_create_thread
[       OK ] GenericTracepoints.sched_proc_fork_case_clone3_child_new_namespace_create_thread (499 ms)
[ RUN      ] GenericTracepoints.sched_proc_fork_case_clone
[       OK ] GenericTracepoints.sched_proc_fork_case_clone (503 ms)
[ RUN      ] GenericTracepoints.sched_switch
[       OK ] GenericTracepoints.sched_switch (547 ms)
[ RUN      ] GenericTracepoints.signal_deliver
[       OK ] GenericTracepoints.signal_deliver (539 ms)
[----------] 13 tests from GenericTracepoints (10939 ms total)

[----------] 28 tests from Actions
[ RUN      ] Actions.drop_failed_enter
[       OK ] Actions.drop_failed_enter (507 ms)
[ RUN      ] Actions.drop_failed_exit
[       OK ] Actions.drop_failed_exit (579 ms)
[ RUN      ] Actions.drop_failed_successful
[       OK ] Actions.drop_failed_successful (511 ms)
[ RUN      ] Actions.dynamic_snaplen_negative_fd
[       OK ] Actions.dynamic_snaplen_negative_fd (527 ms)
[ RUN      ] Actions.dynamic_snaplen_no_socket
[       OK ] Actions.dynamic_snaplen_no_socket (519 ms)
[ RUN      ] Actions.dynamic_snaplen_HTTP
[       OK ] Actions.dynamic_snaplen_HTTP (527 ms)
[ RUN      ] Actions.dynamic_snaplen_partial_HTTP_OPT
[       OK ] Actions.dynamic_snaplen_partial_HTTP_OPT (511 ms)
[ RUN      ] Actions.dynamic_snaplen_HTTP_TRACE
[       OK ] Actions.dynamic_snaplen_HTTP_TRACE (503 ms)
[ RUN      ] Actions.dynamic_snaplen_MYSQL
[       OK ] Actions.dynamic_snaplen_MYSQL (499 ms)
[ RUN      ] Actions.dynamic_snaplen_not_MYSQL
[       OK ] Actions.dynamic_snaplen_not_MYSQL (527 ms)
[ RUN      ] Actions.dynamic_snaplen_POSTGRES
[       OK ] Actions.dynamic_snaplen_POSTGRES (515 ms)
[ RUN      ] Actions.dynamic_snaplen_not_POSTGRES
[       OK ] Actions.dynamic_snaplen_not_POSTGRES (523 ms)
[ RUN      ] Actions.dynamic_snaplen_MONGO
[       OK ] Actions.dynamic_snaplen_MONGO (507 ms)
[ RUN      ] Actions.dynamic_snaplen_not_MONGO
[       OK ] Actions.dynamic_snaplen_not_MONGO (535 ms)
[ RUN      ] Actions.dynamic_snaplen_fullcapture_port_range
[       OK ] Actions.dynamic_snaplen_fullcapture_port_range (531 ms)
[ RUN      ] Actions.dynamic_snaplen_statsd_port
[       OK ] Actions.dynamic_snaplen_statsd_port (527 ms)
[ RUN      ] Actions.dynamic_snaplen_no_statsd_port
[       OK ] Actions.dynamic_snaplen_no_statsd_port (539 ms)
[ RUN      ] Actions.read_in_order_from_buffer
[       OK ] Actions.read_in_order_from_buffer (347 ms)
[ RUN      ] Actions.sampling_ratio_UF_ALWAYS_DROP
[       OK ] Actions.sampling_ratio_UF_ALWAYS_DROP (571 ms)
[ RUN      ] Actions.sampling_ratio_NO_FLAGS
[       OK ] Actions.sampling_ratio_NO_FLAGS (523 ms)
[ RUN      ] Actions.sampling_ratio_dropping_FCNTL_E
[       OK ] Actions.sampling_ratio_dropping_FCNTL_E (607 ms)
[ RUN      ] Actions.sampling_ratio_dropping_FCNTL_X
[       OK ] Actions.sampling_ratio_dropping_FCNTL_X (607 ms)
[ RUN      ] Actions.sampling_ratio_dropping_CLOSE_E_invalid_fd
[       OK ] Actions.sampling_ratio_dropping_CLOSE_E_invalid_fd (579 ms)
[ RUN      ] Actions.sampling_ratio_dropping_CLOSE_E_max_fds
[       OK ] Actions.sampling_ratio_dropping_CLOSE_E_max_fds (575 ms)
[ RUN      ] Actions.sampling_ratio_dropping_CLOSE_E_already_closed_fd
[       OK ] Actions.sampling_ratio_dropping_CLOSE_E_already_closed_fd (607 ms)
[ RUN      ] Actions.sampling_ratio_dropping_CLOSE_X
[       OK ] Actions.sampling_ratio_dropping_CLOSE_X (583 ms)
[ RUN      ] Actions.sampling_ratio_dropping_BIND_X
[       OK ] Actions.sampling_ratio_dropping_BIND_X (611 ms)
[ RUN      ] Actions.sampling_ratio_check_DROP_E_DROP_X
[       OK ] Actions.sampling_ratio_check_DROP_E_DROP_X (2307 ms)
[----------] 28 tests from Actions (16831 ms total)

[----------] Global test environment tear-down
[==========] 383 tests from 4 test suites ran. (205775 ms total)
[  PASSED  ] 373 tests.
[  SKIPPED ] 10 tests, listed below:
[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_no_snaplen
[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_snaplen
[  SKIPPED ] SyscallExit.recvmsgX_tcp_connection_NULL_sockaddr
[  SKIPPED ] SyscallExit.recvmsgX_udp_connection_NULL_sockaddr
[  SKIPPED ] SyscallExit.sendmsgX_fail
[  SKIPPED ] SyscallExit.sendmsgX_null_iovec
[  SKIPPED ] SyscallEnter.connectE_INET
[  SKIPPED ] SyscallEnter.connectE_INET6
[  SKIPPED ] SyscallEnter.connectE_UNIX
[  SKIPPED ] SyscallEnter.connectE_UNIX_max_path

-----------------------------------------------------
- Teardown phase
-----------------------------------------------------

@yzewei
Copy link
Contributor Author

yzewei commented Apr 18, 2024

@FedeDP Due to some problems with the bpf module, we are still communicating with the llvm community and may continue to submit relevant PR in the future.
[https://github.com/llvm/llvm-project/issues/86780](llvm compiler error)
Special thanks to @Andreagit97 @FedeDP @poiana for teaching me and being patient during this process.

@FedeDP
Copy link
Contributor

FedeDP commented Apr 18, 2024

You are welcome (also, you did a great great job btw!)

@@ -187,11 +189,14 @@ TEST(SyscallExit, open_by_handle_atX_success)
/* Parameter 4: path (type: PT_FSPATH) */
evt_test->assert_charbuf_param(4, fspath);

#if defined(__loongarch64)
#elif
Copy link
Contributor

@FedeDP FedeDP Apr 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, can you share the errors you were having here?
We are having a very similar issue in the open related test cases for ppc64le: #1739

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, i'd use ifndef in this case and leave a comment explaining the issues on the arch ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm adding a judgment here because there is no fstat syscall call under the loongarch architecture. Let's take a look at the error situation without adding a judgment

Copy link
Contributor Author

@yzewei yzewei Apr 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@FedeDP A compile error occurred because fstat could not be found.
I found fstat in the ppc64 system call table, so this shouldn't be a problem

#ifndef __NR_fstat
#define __NR_fstat 108
#endif

Signed-off-by: yzewei <yangzewei@loongson.cn>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants