profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/Jongy/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

Jongy/gcc_assert_introspect 11

A GCC plugin to insert pytest-like assert introspections

Jongy/bellbot 10

Telegram bot that notifies you when commands finish executing

Jongy/micropython 9

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

Jongy/cgen 2

Pythonic generators in C

Jongy/gcc_builtin_lookup_name 1

A GCC plugin to test for the existence of a name in compile time.

Jongy/micropython-kernel-snippets 1

Collections of random snippets to use with Linux kernel MicroPython

Granulate/linux 0

Linux kernel source tree

Jongy/adriver 0

Using netfilter in a LKM to block ads

Jongy/async-profiler 0

Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events

issue commentbenfred/py-spy

Capturing method values for highly abstracted programs

Not sure about native frames - that'd require knowing the ABI & API of the specific functions (knowing their stack layout to be able to read saved arguments, if any; and the argument types, in order to correctly read integers / floats / strings / etc). I'd say it's not easy at all.

As for Python frames - it's much easier. py-spy already supports "dumping" the current frames with their locals (py-spy dump --locals). Using it while sampling + encoding the arguments on the frame name should be possible (similar to what I have suggested in https://github.com/benfred/py-spy/issues/429)

timurbey

comment created time in 2 days

issue commentjvm-profiling-tools/async-profiler

Does async-profiler can be used for node.js pr python process

No. asnyc-profiler uses JVM-specific APIs to extract the Java stack traces. You need another solution to extract Python or Node.JS stacks from those runtimes. For Python you can try py-spy. For Node.JS you can check this guide.

sattishv

comment created time in 4 days

created tagGranulate/gprofiler

tag1.2.1

gProfiler is a system-wide profiler, combining multiple sampling profilers to produce unified visualization of what your CPU is spending time on.

created time in 5 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 55100fa2ef3f0281efed8ae650d29c9f4465fb14

gProfiler 1.2.1 (#182)

view details

push time in 5 days

delete branch Granulate/gprofiler

delete branch : bump-version

delete time in 5 days

PR merged Granulate/gprofiler

gProfiler 1.2.1
+1 -1

0 comment

1 changed file

Jongy

pr closed time in 5 days

PR opened Granulate/gprofiler

Reviewers
gProfiler 1.2.1
+1 -1

0 comment

1 changed file

pr created time in 6 days

create barnchGranulate/gprofiler

branch : bump-version

created branch time in 6 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 70ddc003bdf1df4b88beed4b2a32e6f0bd82faf4

python: py-spy: Use SIGKILL to stop it (#180) See py-spy commit https://github.com/benfred/py-spy/commit/290584dde76834599d66d74b64165dfe9a357ef5, SIGINT just raises a flag telling it to stop (makes sense, since it still dumps output etc). But if py-spy is stuck for whatever reason, it won't be stopped by this signal. SIGKILL is not handled by py-spy, duh, so it will exit immediately.

view details

push time in 6 days

delete branch Granulate/gprofiler

delete branch : python-pyspy-really-stop

delete time in 6 days

PR merged Granulate/gprofiler

python: py-spy: Use SIGTERM to stop it bug

See py-spy commit https://github.com/benfred/py-spy/commit/290584dde76834599d66d74b64165dfe9a357ef5, SIGINT just raises a flag telling it to stop (makes sense, since it still dumps output etc). But if py-spy is stuck for whatever reason, it won't be stopped by this signal.

SIGTERM is not handled by py-spy so it will exit immediately.

+1 -1

0 comment

1 changed file

Jongy

pr closed time in 6 days

issue commentJonathonReinhart/staticx

staticx: Bootloader machine (EM_X86_64) doesn't match program machine (EM_AARCH64)

Hmm, I realized it's just related to CentOS - this Dockerfile yields a binary crashing with the same stack, when built on Linux xxx 5.8.0-1035-aws #37~20.04.1-Ubuntu SMP Tue Jun 1 09:52:32 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux.

# centos:7
FROM centos@sha256:43964203bf5d7fe38c6fca6166ac89e4c095e2b0c0a28f6c7c678a1348ddc7fa AS build-stage

RUN cat /etc/os-release;

RUN yum install -y gcc python3 curl python3-pip python3-devel

RUN python3 -m pip install wheel scons
RUN yum install -y glibc-static
RUN python3 -m pip install staticx

RUN yum install -y bzip2
RUN curl -o /tmp/patchelf-0.13.tar.bz2  -sSL https://github.com/NixOS/patchelf/releases/download/0.13/patchelf-0.13.tar.bz2
RUN yum install -y make
RUN yum install -y gcc-c++
RUN cd /tmp && tar -jxf patchelf-0.13.tar.bz2 && cd patchelf* && ./configure  --disable-dependency-tracking && make install

RUN echo 'void main() { printf("hello world!\n"); return 0; }' > a.c && gcc a.c -o a
RUN staticx a /a_static

FROM scratch AS export-stage

COPY --from=build-stage /a_static /a_static

when building locally on that Ubuntu machine, everything works. So I assume the issue is with CentOS.

alsf2001

comment created time in 6 days

issue commentjvm-profiling-tools/async-profiler

How to use the option --fdtransfer for profiling from the host

As Andrei said, you don't need to install anything. The perf tool is just one usermode interface to the kernel perf_events subsystem. async-profiler uses the perf_events subsystem directly.

Also note that async-profiler is able to trace native code in usermode (JVM / libc / ...) in itimer mode (without using fdtransfer). cpu mode (and fdtransfer) add kernel code.

sattishv

comment created time in 6 days

PR opened Granulate/gprofiler

Reviewers
Properly wrap all code paths with removal of temporary files bug

Description

Wrap all code paths with removal of temporary output files, properly this time.

Motivation and Context

Avoid leaving leftovers which, over time, increase gProfiler's disk usage.

How Has This Been Tested?

  • CI
  • Will test manually with cases that previously resulted in a file being leaked (e.g timeout / error)

Checklist:

  • [ ] Implement for Java & others
+48 -38

0 comment

4 changed files

pr created time in 7 days

create barnchGranulate/gprofiler

branch : always-remove-outputs

created branch time in 7 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 4544885d346bed98534ebb4a0ab7f89b6acbecf2

Just use SIGKILL

view details

push time in 7 days

PR opened Granulate/gprofiler

Reviewers
python: py-spy: Use SIGTERM to stop it bug

See py-spy commit https://github.com/benfred/py-spy/commit/290584dde76834599d66d74b64165dfe9a357ef5, SIGINT just raises a flag telling it to stop (makes sense, since it still dumps output etc). But if py-spy is stuck for whatever reason, it won't be stopped by this signal.

SIGTERM is not handled by py-spy so it will exit immediately.

+1 -1

0 comment

1 changed file

pr created time in 7 days

create barnchGranulate/gprofiler

branch : python-pyspy-really-stop

created branch time in 7 days

issue commentjvm-profiling-tools/async-profiler

How to use the option --fdtransfer for profiling from the host

@sattishv setns fails with EPERM. The man page for this syscall lists one reason:

EPERM  The calling thread did not have the required capability for this operation.

fdtransfer needs to run as root - so sudo -u altusapp won't work. You can run it as root (just sudo) and jattach (invoked by profiler.sh) will switch UID/GID so it matches the target application.

sattishv

comment created time in 7 days

issue commenttomerfiliba-org/rpyc

Callable(dict) results True

Using copy.copy is a legit solution, to un-netref dicts, yeah. (you might need copy.deepcopy, if the dict is nested)

Ixiodor

comment created time in 11 days

issue commentjvm-profiling-tools/async-profiler

How to use the option --fdtransfer for profiling from the host

I could see the both variables already defined in profiler.sh

Sorry, I meant to prefix their evaluation with strace, so that we can see what exactly fails. Like this:

diff --git a/profiler.sh b/profiler.sh
index b10214a..c52ca92 100755
--- a/profiler.sh
+++ b/profiler.sh
@@ -89,7 +89,7 @@ check_if_terminated() {
 
 fdtransfer() {
     if [ "$USE_FDTRANSFER" = "true" ]; then
-        "$FDTRANSFER" "$PID"
+        strace "$FDTRANSFER" "$PID"
     fi
 }
sattishv

comment created time in 11 days

issue commenttomerfiliba-org/rpyc

Callable(dict) results True

Maybe I didn't get the solution, but I can't fix Django. Are you talking about fixing RPyC behaviour?

Talking about Django. It can't be solved cleanly in RPyC. (it can be solved by patching the builtin callable, but patching builtins is not something RPyC does at the moment)

Ixiodor

comment created time in 12 days

issue commenttomerfiliba-org/rpyc

Callable(dict) results True

I thought about it - it makes total sense: netrefs need to implement __call__, so that it can be forwarded over the connection. callable() merely checks for its existence (without calling it). Actually calling it forwards it over the connection and the remote side raises this TypeError.

The solution should probably be to use inspect.isfunction et al, which boil down to isinstance() calls which are intercepted and fixed by rpyc (unlike callable()).

Ixiodor

comment created time in 12 days

issue commenttomerfiliba-org/rpyc

Callable(dict) results True

I can confirm this happens on RPyC 5.0.1, I tried callable(x.__dict__) (where x is some netref object) and it returns True.

Ixiodor

comment created time in 12 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 61dca1f7d101cb0dc6d52722a79fbe1485fca183

Add instructions to run on AWS Fargate (#179)

view details

push time in 12 days

delete branch Granulate/gprofiler

delete branch : fargate

delete time in 12 days

PR merged Granulate/gprofiler

Add AWS Fargate running instructions documentation

Title says it all.

Based on https://github.com/Granulate/gprofiler/pull/174

+29 -0

3 comments

1 changed file

Jongy

pr closed time in 12 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 72b137b943dc68dd25137a430554ebc1e082ddc0

Fix typo

view details

push time in 12 days

pull request commentGranulate/gprofiler

Add AWS Fargate running instructions

Added a few more notes

Jongy

comment created time in 12 days

push eventGranulate/gprofiler

Yonatan Goldschmidt

commit sha 8d167bc0712c21b77d8468db78b8c945cec7fa76

Add more docs

view details

push time in 12 days