Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d2ca79dfd |
+16
-4
@@ -92,8 +92,20 @@ RUN cd c_utils_lib && \
|
||||
RUN cd nostr_core_lib && \
|
||||
chmod +x build.sh && \
|
||||
sed -i 's/CFLAGS="-Wall -Wextra -std=c99 -fPIC -O2"/CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -Wall -Wextra -std=c99 -fPIC -O2"/' build.sh && \
|
||||
if [ "$(uname -m)" = "aarch64" ] && ! command -v aarch64-linux-gnu-gcc >/dev/null 2>&1; then \
|
||||
ln -sf /usr/bin/gcc /usr/local/bin/aarch64-linux-gnu-gcc; \
|
||||
fi && \
|
||||
rm -f *.o *.a 2>/dev/null || true && \
|
||||
./build.sh --nips=1,6,13,17,19,44,59
|
||||
./build.sh --nips=1,6,13,17,19,44,59 && \
|
||||
if [ -f libnostr_core_arm64.a ]; then \
|
||||
cp libnostr_core_arm64.a libnostr_core.a; \
|
||||
elif [ -f libnostr_core_x64.a ]; then \
|
||||
cp libnostr_core_x64.a libnostr_core.a; \
|
||||
else \
|
||||
echo "ERROR: No supported nostr_core static library produced"; \
|
||||
ls -la *.a 2>/dev/null || true; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
# Copy c-relay source files LAST (only this layer rebuilds on source changes)
|
||||
COPY src/ /build/src/
|
||||
@@ -103,9 +115,9 @@ COPY Makefile /build/Makefile
|
||||
# Disable fortification to avoid __*_chk symbols that don't exist in MUSL
|
||||
# Use conditional compilation flags based on DEBUG_BUILD argument
|
||||
RUN if [ "$DEBUG_BUILD" = "true" ]; then \
|
||||
CFLAGS="-g -O2 -DDEBUG"; \
|
||||
CFLAGS="-g -O2 -DDEBUG -fno-omit-frame-pointer"; \
|
||||
STRIP_CMD="echo 'Keeping debug symbols'"; \
|
||||
echo "Building with DEBUG symbols enabled (optimized with -O2)"; \
|
||||
echo "Building with DEBUG symbols enabled (optimized with -O2, frame pointers kept for perf)"; \
|
||||
else \
|
||||
CFLAGS="-O2"; \
|
||||
STRIP_CMD="strip /build/c_relay_static"; \
|
||||
@@ -121,7 +133,7 @@ RUN if [ "$DEBUG_BUILD" = "true" ]; then \
|
||||
src/db_ops.c src/thread_pool.c \
|
||||
-o /build/c_relay_static \
|
||||
c_utils_lib/libc_utils.a \
|
||||
nostr_core_lib/libnostr_core_x64.a \
|
||||
nostr_core_lib/libnostr_core.a \
|
||||
-lwebsockets -lssl -lcrypto -lsqlite3 -lsecp256k1 \
|
||||
-lcurl -lz -lpthread -lm -ldl && \
|
||||
eval "$STRIP_CMD"
|
||||
|
||||
@@ -92,63 +92,20 @@ x86: $(BUILD_DIR) src/main.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB) $(C_
|
||||
$(CC) $(CFLAGS) $(INCLUDES) $(MAIN_SRC) -o $(BUILD_DIR)/c_relay_x86 $(NOSTR_CORE_LIB) $(C_UTILS_LIB) $(LIBS)
|
||||
@echo "Build complete: $(BUILD_DIR)/c_relay_x86"
|
||||
|
||||
arm64: $(BUILD_DIR) src/main.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB) $(C_UTILS_LIB)
|
||||
@echo "Cross-compiling C-Relay for ARM64..."
|
||||
@if ! command -v aarch64-linux-gnu-gcc >/dev/null 2>&1; then \
|
||||
echo "ERROR: ARM64 cross-compiler not found."; \
|
||||
echo "Install with: make install-cross-tools"; \
|
||||
echo "Or install manually: sudo apt install gcc-aarch64-linux-gnu"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo "Checking for ARM64 development libraries..."
|
||||
@if ! dpkg -l | grep -q "libssl-dev:arm64\|libsqlite3-dev:arm64"; then \
|
||||
echo "ERROR: ARM64 libraries not found. Cross-compilation requires ARM64 versions of:"; \
|
||||
echo " - libssl-dev:arm64"; \
|
||||
echo " - libsqlite3-dev:arm64"; \
|
||||
echo " - libwebsockets-dev:arm64"; \
|
||||
echo " - libsecp256k1-dev:arm64"; \
|
||||
echo " - zlib1g-dev:arm64"; \
|
||||
echo " - libcurl4-openssl-dev:arm64"; \
|
||||
echo ""; \
|
||||
echo "Install ARM64 libraries with: make install-arm64-deps"; \
|
||||
echo "Or use Docker for cross-platform builds."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo "Using aarch64-linux-gnu-gcc with ARM64 libraries..."
|
||||
PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig \
|
||||
aarch64-linux-gnu-gcc $(CFLAGS) $(INCLUDES) $(MAIN_SRC) -o $(BUILD_DIR)/c_relay_arm64 $(NOSTR_CORE_LIB) $(C_UTILS_LIB) \
|
||||
-L/usr/lib/aarch64-linux-gnu $(LIBS)
|
||||
@echo "Build complete: $(BUILD_DIR)/c_relay_arm64"
|
||||
|
||||
# Install ARM64 cross-compilation dependencies
|
||||
install-arm64-deps:
|
||||
@echo "Installing ARM64 cross-compilation dependencies..."
|
||||
@echo "This requires adding ARM64 architecture and installing cross-libraries..."
|
||||
sudo dpkg --add-architecture arm64
|
||||
sudo apt update
|
||||
sudo apt install -y \
|
||||
gcc-aarch64-linux-gnu \
|
||||
libc6-dev-arm64-cross \
|
||||
libssl-dev:arm64 \
|
||||
libsqlite3-dev:arm64 \
|
||||
zlib1g-dev:arm64 \
|
||||
libcurl4-openssl-dev:arm64
|
||||
@echo "Note: libwebsockets-dev:arm64 and libsecp256k1-dev:arm64 may need manual building"
|
||||
|
||||
# Install cross-compilation tools
|
||||
install-cross-tools:
|
||||
@echo "Installing cross-compilation tools..."
|
||||
sudo apt update
|
||||
sudo apt install -y gcc-aarch64-linux-gnu libc6-dev-arm64-cross
|
||||
|
||||
# Check what architectures we can actually build
|
||||
# Check local build tooling used by static Docker builder
|
||||
check-toolchain:
|
||||
@echo "Checking available toolchains:"
|
||||
@echo "Native compiler: $(shell $(CC) --version | head -1)"
|
||||
@if command -v aarch64-linux-gnu-gcc >/dev/null 2>&1; then \
|
||||
echo "ARM64 cross-compiler: $(shell aarch64-linux-gnu-gcc --version | head -1)"; \
|
||||
@if command -v docker >/dev/null 2>&1; then \
|
||||
echo "Docker: $$(docker --version)"; \
|
||||
else \
|
||||
echo "ARM64 cross-compiler: NOT INSTALLED (install with 'make install-cross-tools')"; \
|
||||
echo "Docker: NOT INSTALLED"; \
|
||||
fi
|
||||
@if docker buildx version >/dev/null 2>&1; then \
|
||||
echo "Docker buildx: AVAILABLE"; \
|
||||
else \
|
||||
echo "Docker buildx: NOT AVAILABLE (required for cross-architecture static builds)"; \
|
||||
fi
|
||||
|
||||
# Run tests
|
||||
@@ -185,42 +142,41 @@ help:
|
||||
@echo "Targets:"
|
||||
@echo " all Build the relay for current architecture (default)"
|
||||
@echo " x86 Build specifically for x86_64"
|
||||
@echo " arm64 Build for ARM64 (requires cross-compilation setup)"
|
||||
@echo " static-musl-x86_64 Build static MUSL binary using Docker (host arch default)"
|
||||
@echo " static-musl-arm64 Build static MUSL ARM64 binary using Docker buildx"
|
||||
@echo " static-musl Build both static MUSL binaries"
|
||||
@echo " test Build and run tests"
|
||||
@echo " init-db Initialize the database"
|
||||
@echo " clean Clean build artifacts"
|
||||
@echo " clean-all Clean everything including dependencies"
|
||||
@echo " install-deps Install system dependencies"
|
||||
@echo " install-cross-tools Install basic ARM64 cross-compiler"
|
||||
@echo " install-arm64-deps Install ARM64 cross-compilation libraries"
|
||||
@echo " check-toolchain Check available compilers"
|
||||
@echo " check-toolchain Check available local tooling"
|
||||
@echo " help Show this help"
|
||||
@echo ""
|
||||
@echo "Usage:"
|
||||
@echo " make # Build the relay for current arch"
|
||||
@echo " make x86 # Build for x86_64"
|
||||
@echo " make arm64 # Build for ARM64 (fails if cross-compilation not set up)"
|
||||
@echo " make install-arm64-deps # Install full ARM64 cross-compilation setup"
|
||||
@echo " make check-toolchain # Check what compilers are available"
|
||||
@echo " make static-musl-x86_64 # Build static binary via ./build_static.sh"
|
||||
@echo " make static-musl-arm64 # Build ARM64 static binary via ./build_static.sh --arch arm64"
|
||||
@echo " make static-musl # Build both static binaries"
|
||||
@echo " make check-toolchain # Check docker/buildx availability"
|
||||
@echo " make test # Run tests"
|
||||
@echo " make init-db # Set up database"
|
||||
@echo " make force-version # Force regenerate main.h from git"
|
||||
|
||||
# Build fully static MUSL binaries using Docker
|
||||
static-musl-x86_64:
|
||||
@echo "Building fully static MUSL binary for x86_64..."
|
||||
docker buildx build --platform linux/amd64 -f examples/deployment/static-builder.Dockerfile -t c-relay-static-builder-x86_64 --load .
|
||||
docker run --rm -v $(PWD)/build:/output c-relay-static-builder-x86_64 sh -c "cp /c_relay_static_musl_x86_64 /output/"
|
||||
@echo "Static binary created: build/c_relay_static_musl_x86_64"
|
||||
@echo "Building fully static MUSL binary using host architecture default..."
|
||||
./build_static.sh
|
||||
@echo "Static binary created in build/ (host architecture naming)"
|
||||
|
||||
static-musl-arm64:
|
||||
@echo "Building fully static MUSL binary for ARM64..."
|
||||
docker buildx build --platform linux/arm64 -f examples/deployment/static-builder.Dockerfile -t c-relay-static-builder-arm64 --load .
|
||||
docker run --rm -v $(PWD)/build:/output c-relay-static-builder-arm64 sh -c "cp /c_relay_static_musl_x86_64 /output/c_relay_static_musl_arm64"
|
||||
@echo "Static binary created: build/c_relay_static_musl_arm64"
|
||||
./build_static.sh --arch arm64
|
||||
@echo "Static ARM64 binary created in build/"
|
||||
|
||||
static-musl: static-musl-x86_64 static-musl-arm64
|
||||
@echo "Built static MUSL binaries for both architectures"
|
||||
|
||||
.PHONY: static-musl-x86_64 static-musl-arm64 static-musl
|
||||
.PHONY: all x86 arm64 test init-db clean clean-all install-deps install-cross-tools install-arm64-deps check-toolchain help force-version
|
||||
.PHONY: all x86 test init-db clean clean-all install-deps check-toolchain help force-version
|
||||
+78
-3
@@ -11,8 +11,41 @@ DOCKERFILE="$SCRIPT_DIR/Dockerfile.alpine-musl"
|
||||
|
||||
# Parse command line arguments
|
||||
DEBUG_BUILD=false
|
||||
if [[ "$1" == "--debug" ]]; then
|
||||
DEBUG_BUILD=true
|
||||
TARGET_ARCH=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--debug)
|
||||
DEBUG_BUILD=true
|
||||
shift
|
||||
;;
|
||||
--arch)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "ERROR: --arch requires a value"
|
||||
echo "Usage: $0 [--debug] [--arch <arm64|armv7|x86_64>]"
|
||||
exit 1
|
||||
fi
|
||||
case "$2" in
|
||||
arm64|armv7|x86_64)
|
||||
TARGET_ARCH="$2"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unsupported architecture '$2'"
|
||||
echo "Supported values: arm64, armv7, x86_64"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unknown argument '$1'"
|
||||
echo "Usage: $0 [--debug] [--arch <arm64|armv7|x86_64>]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$DEBUG_BUILD" = true ]; then
|
||||
echo "=========================================="
|
||||
echo "C-Relay MUSL Static Binary Builder (DEBUG MODE)"
|
||||
echo "=========================================="
|
||||
@@ -24,6 +57,9 @@ fi
|
||||
echo "Project directory: $SCRIPT_DIR"
|
||||
echo "Build directory: $BUILD_DIR"
|
||||
echo "Debug build: $DEBUG_BUILD"
|
||||
if [[ -n "$TARGET_ARCH" ]]; then
|
||||
echo "Requested target architecture: $TARGET_ARCH"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Create build directory
|
||||
@@ -58,17 +94,43 @@ DOCKER_CMD="docker"
|
||||
echo "✓ Docker is available and running"
|
||||
echo ""
|
||||
|
||||
# Detect architecture
|
||||
# Detect host architecture
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64)
|
||||
HOST_ARCH="x86_64"
|
||||
;;
|
||||
aarch64|arm64)
|
||||
HOST_ARCH="arm64"
|
||||
;;
|
||||
armv7l|armv7)
|
||||
HOST_ARCH="armv7"
|
||||
;;
|
||||
*)
|
||||
HOST_ARCH="unknown"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Resolve target architecture
|
||||
if [[ -n "$TARGET_ARCH" ]]; then
|
||||
ARCH="$TARGET_ARCH"
|
||||
fi
|
||||
|
||||
case "$ARCH" in
|
||||
x86_64)
|
||||
PLATFORM="linux/amd64"
|
||||
OUTPUT_NAME="c_relay_static_x86_64"
|
||||
;;
|
||||
aarch64|arm64)
|
||||
ARCH="arm64"
|
||||
PLATFORM="linux/arm64"
|
||||
OUTPUT_NAME="c_relay_static_arm64"
|
||||
;;
|
||||
armv7l|armv7)
|
||||
ARCH="armv7"
|
||||
PLATFORM="linux/arm/v7"
|
||||
OUTPUT_NAME="c_relay_static_armv7"
|
||||
;;
|
||||
*)
|
||||
echo "WARNING: Unknown architecture: $ARCH"
|
||||
echo "Defaulting to linux/amd64"
|
||||
@@ -77,6 +139,19 @@ case "$ARCH" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# When cross-building, ensure buildx exists and warn about QEMU/binfmt setup
|
||||
if [[ "$HOST_ARCH" != "unknown" && "$ARCH" != "$HOST_ARCH" ]]; then
|
||||
echo "NOTE: Cross-building from host '$HOST_ARCH' to target '$ARCH'."
|
||||
echo " Docker QEMU/binfmt support is required for this to work."
|
||||
if ! docker buildx version >/dev/null 2>&1; then
|
||||
echo "ERROR: docker buildx is required for cross-architecture builds but is not available."
|
||||
echo "Install/enable buildx and binfmt support, then retry."
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ docker buildx is available for cross-architecture build"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Append _debug suffix to output name for debug builds so production binary is never overwritten
|
||||
if [ "$DEBUG_BUILD" = true ]; then
|
||||
OUTPUT_NAME="${OUTPUT_NAME}_debug"
|
||||
|
||||
+81
-26
@@ -18,6 +18,8 @@ COMMIT_MESSAGE=""
|
||||
RELEASE_MODE=false
|
||||
VERSION_INCREMENT_TYPE="patch" # "patch", "minor", or "major"
|
||||
|
||||
VERSION_INCREMENT_EXPLICIT=false
|
||||
|
||||
show_usage() {
|
||||
echo "C-Relay Increment and Push Script"
|
||||
echo ""
|
||||
@@ -30,6 +32,7 @@ show_usage() {
|
||||
echo " $0 -m \"commit message\" Increment minor version"
|
||||
echo " $0 -M \"commit message\" Increment major version"
|
||||
echo " $0 -r \"commit message\" Create release with assets (no version increment)"
|
||||
echo " $0 -r -p \"commit message\" Create release with patch version increment"
|
||||
echo " $0 -r -m \"commit message\" Create release with minor version increment"
|
||||
echo " $0 -h Show this help message"
|
||||
echo ""
|
||||
@@ -45,6 +48,7 @@ show_usage() {
|
||||
echo " $0 -m \"Added new features\""
|
||||
echo " $0 -M \"Breaking API changes\""
|
||||
echo " $0 -r \"Release current version\""
|
||||
echo " $0 -r -p \"Release with patch increment\""
|
||||
echo " $0 -r -m \"Release with minor increment\""
|
||||
echo ""
|
||||
echo "VERSION INCREMENT MODES:"
|
||||
@@ -53,7 +57,7 @@ show_usage() {
|
||||
echo " -M, --major: Increment major version, zero minor+patch (v1.2.3 → v2.0.0)"
|
||||
echo ""
|
||||
echo "RELEASE MODE (-r flag):"
|
||||
echo " - Build static binary using build_static.sh"
|
||||
echo " - Build static binaries for x86_64 and ARM64 (Raspberry Pi) using build_static.sh"
|
||||
echo " - Create source tarball"
|
||||
echo " - Git add, commit, push, and create Gitea release with assets"
|
||||
echo " - Can be combined with version increment flags"
|
||||
@@ -72,14 +76,17 @@ while [[ $# -gt 0 ]]; do
|
||||
;;
|
||||
-p|--patch)
|
||||
VERSION_INCREMENT_TYPE="patch"
|
||||
VERSION_INCREMENT_EXPLICIT=true
|
||||
shift
|
||||
;;
|
||||
-m|--minor)
|
||||
VERSION_INCREMENT_TYPE="minor"
|
||||
VERSION_INCREMENT_EXPLICIT=true
|
||||
shift
|
||||
;;
|
||||
-M|--major)
|
||||
VERSION_INCREMENT_TYPE="major"
|
||||
VERSION_INCREMENT_EXPLICIT=true
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
@@ -306,9 +313,9 @@ git_commit_and_push_no_tag() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to build release binary
|
||||
# Function to build release binaries
|
||||
build_release_binary() {
|
||||
print_status "Building release binary..."
|
||||
print_status "Building release binaries..."
|
||||
|
||||
# Check if build_static.sh exists
|
||||
if [[ ! -f "build_static.sh" ]]; then
|
||||
@@ -316,14 +323,22 @@ build_release_binary() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Run the static build script
|
||||
# Build x86_64 first (required for success)
|
||||
if ./build_static.sh > /dev/null 2>&1; then
|
||||
print_success "Built static binary successfully"
|
||||
return 0
|
||||
print_success "Built x86_64 static binary successfully"
|
||||
else
|
||||
print_error "Failed to build static binary"
|
||||
print_error "Failed to build x86_64 static binary"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build arm64 second (warning-only on failure)
|
||||
if ./build_static.sh --arch arm64 > /dev/null 2>&1; then
|
||||
print_success "Built ARM64 static binary successfully"
|
||||
else
|
||||
print_warning "Failed to build ARM64 static binary (continuing with release)"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Function to create source tarball
|
||||
@@ -353,8 +368,9 @@ create_source_tarball() {
|
||||
# Function to upload release assets to Gitea
|
||||
upload_release_assets() {
|
||||
local release_id="$1"
|
||||
local binary_path="$2"
|
||||
local binary_path_x86="$2"
|
||||
local tarball_path="$3"
|
||||
local binary_path_arm64="$4"
|
||||
|
||||
print_status "Uploading release assets..."
|
||||
|
||||
@@ -369,9 +385,9 @@ upload_release_assets() {
|
||||
local assets_url="$api_url/releases/$release_id/assets"
|
||||
print_status "Assets URL: $assets_url"
|
||||
|
||||
# Upload binary
|
||||
if [[ -f "$binary_path" ]]; then
|
||||
print_status "Uploading binary: $(basename "$binary_path")"
|
||||
# Upload x86_64 binary
|
||||
if [[ -f "$binary_path_x86" ]]; then
|
||||
print_status "Uploading binary: $(basename "$binary_path_x86")"
|
||||
|
||||
# Retry loop for eventual consistency
|
||||
local max_attempts=3
|
||||
@@ -380,11 +396,11 @@ upload_release_assets() {
|
||||
print_status "Upload attempt $attempt/$max_attempts"
|
||||
local binary_response=$(curl -fS -X POST "$assets_url" \
|
||||
-H "Authorization: token $token" \
|
||||
-F "attachment=@$binary_path;filename=$(basename "$binary_path")" \
|
||||
-F "name=$(basename "$binary_path")")
|
||||
-F "attachment=@$binary_path_x86;filename=$(basename "$binary_path_x86")" \
|
||||
-F "name=$(basename "$binary_path_x86")")
|
||||
|
||||
if echo "$binary_response" | grep -q '"id"'; then
|
||||
print_success "Uploaded binary successfully"
|
||||
print_success "Uploaded x86_64 binary successfully"
|
||||
break
|
||||
else
|
||||
print_warning "Upload attempt $attempt failed"
|
||||
@@ -392,7 +408,37 @@ upload_release_assets() {
|
||||
print_status "Retrying in 2 seconds..."
|
||||
sleep 2
|
||||
else
|
||||
print_error "Failed to upload binary after $max_attempts attempts"
|
||||
print_error "Failed to upload x86_64 binary after $max_attempts attempts"
|
||||
print_error "Response: $binary_response"
|
||||
fi
|
||||
fi
|
||||
((attempt++))
|
||||
done
|
||||
fi
|
||||
|
||||
# Upload ARM64 binary
|
||||
if [[ -f "$binary_path_arm64" ]]; then
|
||||
print_status "Uploading binary: $(basename "$binary_path_arm64")"
|
||||
|
||||
local max_attempts=3
|
||||
local attempt=1
|
||||
while [[ $attempt -le $max_attempts ]]; do
|
||||
print_status "Upload attempt $attempt/$max_attempts"
|
||||
local binary_response=$(curl -fS -X POST "$assets_url" \
|
||||
-H "Authorization: token $token" \
|
||||
-F "attachment=@$binary_path_arm64;filename=$(basename "$binary_path_arm64")" \
|
||||
-F "name=$(basename "$binary_path_arm64")")
|
||||
|
||||
if echo "$binary_response" | grep -q '"id"'; then
|
||||
print_success "Uploaded ARM64 binary successfully"
|
||||
break
|
||||
else
|
||||
print_warning "Upload attempt $attempt failed"
|
||||
if [[ $attempt -lt $max_attempts ]]; then
|
||||
print_status "Retrying in 2 seconds..."
|
||||
sleep 2
|
||||
else
|
||||
print_error "Failed to upload ARM64 binary after $max_attempts attempts"
|
||||
print_error "Response: $binary_response"
|
||||
fi
|
||||
fi
|
||||
@@ -482,7 +528,7 @@ main() {
|
||||
print_status "=== RELEASE MODE ==="
|
||||
|
||||
# Only increment version if explicitly requested (not just because of -r flag)
|
||||
if [[ "$VERSION_INCREMENT_TYPE" != "patch" ]]; then
|
||||
if [[ "$VERSION_INCREMENT_EXPLICIT" == true ]]; then
|
||||
increment_version "$VERSION_INCREMENT_TYPE"
|
||||
else
|
||||
# In release mode without version increment, get current version
|
||||
@@ -504,16 +550,25 @@ main() {
|
||||
git_commit_and_push_no_tag
|
||||
|
||||
# Build release binary
|
||||
local binary_path_x86=""
|
||||
local binary_path_arm64=""
|
||||
if build_release_binary; then
|
||||
local binary_path="build/c_relay_static_x86_64"
|
||||
else
|
||||
print_warning "Binary build failed, continuing with release creation"
|
||||
# Check if binary exists from previous build
|
||||
if [[ -f "build/c_relay_static_x86_64" ]]; then
|
||||
print_status "Using existing binary from previous build"
|
||||
binary_path="build/c_relay_static_x86_64"
|
||||
else
|
||||
binary_path=""
|
||||
binary_path_x86="build/c_relay_static_x86_64"
|
||||
fi
|
||||
if [[ -f "build/c_relay_static_arm64" ]]; then
|
||||
binary_path_arm64="build/c_relay_static_arm64"
|
||||
fi
|
||||
else
|
||||
print_warning "x86_64 binary build failed, continuing with release creation"
|
||||
# Check if binaries exist from previous build
|
||||
if [[ -f "build/c_relay_static_x86_64" ]]; then
|
||||
print_status "Using existing x86_64 binary from previous build"
|
||||
binary_path_x86="build/c_relay_static_x86_64"
|
||||
fi
|
||||
if [[ -f "build/c_relay_static_arm64" ]]; then
|
||||
print_status "Using existing ARM64 binary from previous build"
|
||||
binary_path_arm64="build/c_relay_static_arm64"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -531,8 +586,8 @@ main() {
|
||||
# Validate release_id is numeric
|
||||
if [[ "$release_id" =~ ^[0-9]+$ ]]; then
|
||||
# Upload assets if we have a release ID and assets
|
||||
if [[ -n "$release_id" && (-n "$binary_path" || -n "$tarball_path") ]]; then
|
||||
upload_release_assets "$release_id" "$binary_path" "$tarball_path"
|
||||
if [[ -n "$release_id" && (-n "$binary_path_x86" || -n "$binary_path_arm64" || -n "$tarball_path") ]]; then
|
||||
upload_release_assets "$release_id" "$binary_path_x86" "$tarball_path" "$binary_path_arm64"
|
||||
fi
|
||||
print_success "Release $NEW_VERSION completed successfully!"
|
||||
else
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@
|
||||
// Using CRELAY_ prefix to avoid conflicts with nostr_core_lib VERSION macros
|
||||
#define CRELAY_VERSION_MAJOR 2
|
||||
#define CRELAY_VERSION_MINOR 1
|
||||
#define CRELAY_VERSION_PATCH 8
|
||||
#define CRELAY_VERSION "v2.1.8"
|
||||
#define CRELAY_VERSION_PATCH 9
|
||||
#define CRELAY_VERSION "v2.1.9"
|
||||
|
||||
// Relay metadata (authoritative source for NIP-11 information)
|
||||
#define RELAY_NAME "C-Relay"
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
2026-04-01 09:57:22 - ==========================================
|
||||
2026-04-01 09:57:22 - C-Relay Comprehensive Test Suite Runner
|
||||
2026-04-01 09:57:22 - ==========================================
|
||||
2026-04-01 09:57:22 - Relay URL: ws://127.0.0.1:8888
|
||||
2026-04-01 09:57:22 - Log file: test_results_20260401_095722.log
|
||||
2026-04-01 09:57:22 - Report file: test_report_20260401_095722.html
|
||||
2026-04-01 09:57:22 -
|
||||
2026-04-01 09:57:22 - Checking relay status at ws://127.0.0.1:8888...
|
||||
2026-04-01 09:57:22 - \033[0;32m✓ Relay HTTP endpoint is accessible\033[0m
|
||||
2026-04-01 09:57:22 -
|
||||
2026-04-01 09:57:22 - Starting comprehensive test execution...
|
||||
2026-04-01 09:57:22 -
|
||||
2026-04-01 09:57:22 - \033[0;34m=== SECURITY TEST SUITES ===\033[0m
|
||||
2026-04-01 09:57:22 - ==========================================
|
||||
2026-04-01 09:57:22 - Running Test Suite: SQL Injection Tests
|
||||
2026-04-01 09:57:22 - Description: Comprehensive SQL injection vulnerability testing
|
||||
2026-04-01 09:57:22 - ==========================================
|
||||
2026-04-01 09:57:22 - \033[0;31mERROR: Test script sql_injection_tests.sh not found\033[0m
|
||||
@@ -1,18 +0,0 @@
|
||||
2026-04-01 11:01:47 - ==========================================
|
||||
2026-04-01 11:01:47 - C-Relay Comprehensive Test Suite Runner
|
||||
2026-04-01 11:01:47 - ==========================================
|
||||
2026-04-01 11:01:47 - Relay URL: ws://127.0.0.1:8888
|
||||
2026-04-01 11:01:47 - Log file: test_results_20260401_110147.log
|
||||
2026-04-01 11:01:47 - Report file: test_report_20260401_110147.html
|
||||
2026-04-01 11:01:47 -
|
||||
2026-04-01 11:01:47 - Checking relay status at ws://127.0.0.1:8888...
|
||||
2026-04-01 11:01:47 - \033[0;32m✓ Relay HTTP endpoint is accessible\033[0m
|
||||
2026-04-01 11:01:47 -
|
||||
2026-04-01 11:01:47 - Starting comprehensive test execution...
|
||||
2026-04-01 11:01:47 -
|
||||
2026-04-01 11:01:47 - \033[0;34m=== SECURITY TEST SUITES ===\033[0m
|
||||
2026-04-01 11:01:47 - ==========================================
|
||||
2026-04-01 11:01:47 - Running Test Suite: SQL Injection Tests
|
||||
2026-04-01 11:01:47 - Description: Comprehensive SQL injection vulnerability testing
|
||||
2026-04-01 11:01:47 - ==========================================
|
||||
2026-04-01 11:01:47 - \033[0;31mERROR: Test script sql_injection_tests.sh not found\033[0m
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,5 @@
|
||||
Profiling PID: 2242661
|
||||
CLK_TCK=100
|
||||
Starting perf record in background...
|
||||
perf_pid=2242812
|
||||
Done. Artifacts in /tmp/c_relay_thread_profile_20260402_011703
|
||||
@@ -0,0 +1,145 @@
|
||||
timestamp,tid,thread_name,cpu_pct,delta_ticks,total_ticks
|
||||
1775092623,2242661,lws-main,0.00,0,34
|
||||
1775092623,2242664,db-read-1,0.00,0,21
|
||||
1775092623,2242665,db-write,0.40,2,1055
|
||||
1775092623,2242666,event-worker,0.00,0,0
|
||||
1775092628,2242661,lws-main,0.00,0,34
|
||||
1775092628,2242664,db-read-1,0.00,0,21
|
||||
1775092628,2242665,db-write,92.20,461,1516
|
||||
1775092628,2242666,event-worker,0.00,0,0
|
||||
1775092633,2242661,lws-main,0.00,0,34
|
||||
1775092633,2242664,db-read-1,0.00,0,21
|
||||
1775092633,2242665,db-write,0.00,0,1516
|
||||
1775092633,2242666,event-worker,0.00,0,0
|
||||
1775092638,2242661,lws-main,0.20,1,35
|
||||
1775092638,2242664,db-read-1,0.00,0,21
|
||||
1775092638,2242665,db-write,26.80,134,1650
|
||||
1775092638,2242666,event-worker,0.00,0,0
|
||||
1775092643,2242661,lws-main,0.00,0,35
|
||||
1775092643,2242664,db-read-1,0.20,1,22
|
||||
1775092643,2242665,db-write,13.60,68,1718
|
||||
1775092643,2242666,event-worker,0.00,0,0
|
||||
1775092648,2242661,lws-main,0.00,0,35
|
||||
1775092648,2242664,db-read-1,0.00,0,22
|
||||
1775092648,2242665,db-write,13.60,68,1786
|
||||
1775092648,2242666,event-worker,0.00,0,0
|
||||
1775092654,2242661,lws-main,0.20,1,36
|
||||
1775092654,2242664,db-read-1,0.40,2,24
|
||||
1775092654,2242665,db-write,0.00,0,1786
|
||||
1775092654,2242666,event-worker,0.00,0,0
|
||||
1775092659,2242661,lws-main,0.00,0,36
|
||||
1775092659,2242664,db-read-1,0.00,0,24
|
||||
1775092659,2242665,db-write,0.20,1,1787
|
||||
1775092659,2242666,event-worker,0.00,0,0
|
||||
1775092664,2242661,lws-main,1.80,9,45
|
||||
1775092664,2242664,db-read-1,2.00,10,34
|
||||
1775092664,2242665,db-write,27.60,138,1925
|
||||
1775092664,2242666,event-worker,0.20,1,1
|
||||
1775092669,2242661,lws-main,0.20,1,46
|
||||
1775092669,2242664,db-read-1,0.20,1,35
|
||||
1775092669,2242665,db-write,14.00,70,1995
|
||||
1775092669,2242666,event-worker,0.20,1,2
|
||||
1775092674,2242661,lws-main,0.40,2,48
|
||||
1775092674,2242664,db-read-1,0.20,1,36
|
||||
1775092674,2242665,db-write,34.80,174,2169
|
||||
1775092674,2242666,event-worker,0.20,1,3
|
||||
1775092679,2242661,lws-main,0.00,0,48
|
||||
1775092679,2242664,db-read-1,0.40,2,38
|
||||
1775092679,2242665,db-write,66.80,334,2503
|
||||
1775092679,2242666,event-worker,0.00,0,3
|
||||
1775092684,2242661,lws-main,0.00,0,48
|
||||
1775092684,2242664,db-read-1,1.00,5,43
|
||||
1775092684,2242665,db-write,21.60,108,2611
|
||||
1775092684,2242666,event-worker,0.00,0,3
|
||||
1775092689,2242661,lws-main,0.40,2,50
|
||||
1775092689,2242664,db-read-1,0.20,1,44
|
||||
1775092689,2242665,db-write,54.80,274,2885
|
||||
1775092689,2242666,event-worker,0.00,0,3
|
||||
1775092694,2242661,lws-main,0.20,1,51
|
||||
1775092694,2242664,db-read-1,0.20,1,45
|
||||
1775092694,2242665,db-write,67.20,336,3221
|
||||
1775092694,2242666,event-worker,0.00,0,3
|
||||
1775092699,2242661,lws-main,0.00,0,51
|
||||
1775092699,2242664,db-read-1,0.60,3,48
|
||||
1775092699,2242665,db-write,100.20,501,3722
|
||||
1775092699,2242666,event-worker,0.00,0,3
|
||||
1775092704,2242661,lws-main,0.40,2,53
|
||||
1775092704,2242664,db-read-1,0.40,2,50
|
||||
1775092704,2242665,db-write,93.00,465,4187
|
||||
1775092704,2242666,event-worker,0.00,0,3
|
||||
1775092709,2242661,lws-main,0.20,1,54
|
||||
1775092709,2242664,db-read-1,0.40,2,52
|
||||
1775092709,2242665,db-write,27.60,138,4325
|
||||
1775092709,2242666,event-worker,0.00,0,3
|
||||
1775092714,2242661,lws-main,0.20,1,55
|
||||
1775092714,2242664,db-read-1,0.40,2,54
|
||||
1775092714,2242665,db-write,90.20,451,4776
|
||||
1775092714,2242666,event-worker,0.00,0,3
|
||||
1775092719,2242661,lws-main,0.20,1,56
|
||||
1775092719,2242664,db-read-1,0.20,1,55
|
||||
1775092719,2242665,db-write,100.00,500,5276
|
||||
1775092719,2242666,event-worker,0.00,0,3
|
||||
1775092724,2242661,lws-main,0.00,0,56
|
||||
1775092724,2242664,db-read-1,0.00,0,55
|
||||
1775092724,2242665,db-write,100.20,501,5777
|
||||
1775092724,2242666,event-worker,0.00,0,3
|
||||
1775092729,2242661,lws-main,0.20,1,57
|
||||
1775092729,2242664,db-read-1,0.20,1,56
|
||||
1775092729,2242665,db-write,100.20,501,6278
|
||||
1775092729,2242666,event-worker,0.00,0,3
|
||||
1775092734,2242661,lws-main,0.20,1,58
|
||||
1775092734,2242664,db-read-1,0.20,1,57
|
||||
1775092734,2242665,db-write,100.40,502,6780
|
||||
1775092734,2242666,event-worker,0.00,0,3
|
||||
1775092739,2242661,lws-main,0.00,0,58
|
||||
1775092739,2242664,db-read-1,0.00,0,57
|
||||
1775092739,2242665,db-write,99.80,499,7279
|
||||
1775092739,2242666,event-worker,0.00,0,3
|
||||
1775092744,2242661,lws-main,0.20,1,59
|
||||
1775092744,2242664,db-read-1,0.00,0,57
|
||||
1775092744,2242665,db-write,100.60,503,7782
|
||||
1775092744,2242666,event-worker,0.00,0,3
|
||||
1775092749,2242661,lws-main,0.00,0,59
|
||||
1775092749,2242664,db-read-1,0.00,0,57
|
||||
1775092749,2242665,db-write,100.00,500,8282
|
||||
1775092749,2242666,event-worker,0.00,0,3
|
||||
1775092754,2242661,lws-main,0.20,1,60
|
||||
1775092754,2242664,db-read-1,0.20,1,58
|
||||
1775092754,2242665,db-write,30.40,152,8434
|
||||
1775092754,2242666,event-worker,0.00,0,3
|
||||
1775092759,2242661,lws-main,0.00,0,60
|
||||
1775092759,2242664,db-read-1,0.00,0,58
|
||||
1775092759,2242665,db-write,53.40,267,8701
|
||||
1775092759,2242666,event-worker,0.00,0,3
|
||||
1775092764,2242661,lws-main,0.40,2,62
|
||||
1775092764,2242664,db-read-1,0.00,0,58
|
||||
1775092764,2242665,db-write,50.00,250,8951
|
||||
1775092764,2242666,event-worker,0.00,0,3
|
||||
1775092769,2242661,lws-main,0.00,0,62
|
||||
1775092769,2242664,db-read-1,0.20,1,59
|
||||
1775092769,2242665,db-write,57.60,288,9239
|
||||
1775092769,2242666,event-worker,0.00,0,3
|
||||
1775092774,2242661,lws-main,0.20,1,63
|
||||
1775092774,2242664,db-read-1,0.20,1,60
|
||||
1775092774,2242665,db-write,54.40,272,9511
|
||||
1775092774,2242666,event-worker,0.20,1,4
|
||||
1775092779,2242661,lws-main,0.00,0,63
|
||||
1775092779,2242664,db-read-1,0.20,1,61
|
||||
1775092779,2242665,db-write,49.20,246,9757
|
||||
1775092779,2242666,event-worker,0.00,0,4
|
||||
1775092784,2242661,lws-main,0.20,1,64
|
||||
1775092784,2242664,db-read-1,0.00,0,61
|
||||
1775092784,2242665,db-write,31.00,155,9912
|
||||
1775092784,2242666,event-worker,0.00,0,4
|
||||
1775092789,2242661,lws-main,0.20,1,65
|
||||
1775092789,2242664,db-read-1,0.00,0,61
|
||||
1775092789,2242665,db-write,66.80,334,10246
|
||||
1775092789,2242666,event-worker,0.00,0,4
|
||||
1775092794,2242661,lws-main,0.00,0,65
|
||||
1775092794,2242664,db-read-1,0.20,1,62
|
||||
1775092794,2242665,db-write,40.20,201,10447
|
||||
1775092794,2242666,event-worker,0.00,0,4
|
||||
1775092799,2242661,lws-main,0.20,1,66
|
||||
1775092799,2242664,db-read-1,0.20,1,63
|
||||
1775092799,2242665,db-write,92.40,462,10909
|
||||
1775092799,2242666,event-worker,0.00,0,4
|
||||
|
@@ -0,0 +1,11 @@
|
||||
==========================================
|
||||
Thread CPU Summary (avg + max over run)
|
||||
==========================================
|
||||
Run timestamp (UTC): 20260402_011703
|
||||
Duration: 180s, Interval: 5s
|
||||
|
||||
2242665 db-write 54.76 100.60
|
||||
2242664 db-read-1 0.23 2.00
|
||||
2242661 lws-main 0.18 1.80
|
||||
2242666 event-worker 0.02 0.20
|
||||
TID THREAD AVG_CPU% MAX_CPU%
|
||||
Binary file not shown.
@@ -0,0 +1,622 @@
|
||||
# To display the perf.data header info, please use --header/--header-only options.
|
||||
#
|
||||
#
|
||||
# Total Lost Samples: 0
|
||||
#
|
||||
# Samples: 73K of event 'task-clock:ppp'
|
||||
# Event count (approx.): 18314000000
|
||||
#
|
||||
# Overhead Samples Command Symbol IPC [IPC Coverage]
|
||||
# ........ ............ ............ .............................................. ....................
|
||||
#
|
||||
13.73% 10055 db-write [.] sqlite3BtreeTableMoveto - -
|
||||
|
|
||||
---sqlite3BtreeTableMoveto
|
||||
|
|
||||
|--3.11%--0xfdd00007f040000
|
||||
|
|
||||
|--3.03%--0xfdd75007f000001
|
||||
|
|
||||
|--2.68%--0xfdd75007f040000
|
||||
|
|
||||
--2.25%--0xfdd00007f000001
|
||||
|
||||
10.11% 7408 db-write [.] sqlite3VdbeExec - -
|
||||
|
|
||||
---sqlite3VdbeExec
|
||||
|
|
||||
--4.88%--0
|
||||
|
||||
7.76% 5685 db-write [.] sqlite3GetVarint - -
|
||||
|
|
||||
---sqlite3GetVarint
|
||||
|
|
||||
|--2.86%--0xfdd00007f040000
|
||||
|
|
||||
|--2.61%--0xfdd75007f040000
|
||||
|
|
||||
|--0.76%--0xfdd75007f000001
|
||||
|
|
||||
--0.59%--0xfdd00007f000001
|
||||
|
||||
7.71% 5647 db-write [k] rep_movs_alternative - -
|
||||
|
|
||||
---rep_movs_alternative
|
||||
copy_page_to_iter
|
||||
filemap_read
|
||||
generic_file_read_iter
|
||||
ext4_file_read_iter
|
||||
vfs_read
|
||||
__x64_sys_pread64
|
||||
x64_sys_call
|
||||
do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
sccp
|
||||
|
||||
7.04% 5154 db-write [.] pcache1Fetch - -
|
||||
|
|
||||
---pcache1Fetch
|
||||
|
||||
5.84% 4275 db-write [.] memcpy - -
|
||||
|
|
||||
---memcpy
|
||||
|
||||
5.27% 3857 db-write [.] sccp - -
|
||||
|
|
||||
---sccp
|
||||
|
||||
4.31% 3154 db-write [k] do_syscall_64 - -
|
||||
|
|
||||
---do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
|
|
||||
--4.30%--sccp
|
||||
|
||||
2.81% 2059 db-write [k] filemap_get_read_batch - -
|
||||
|
|
||||
---filemap_get_read_batch
|
||||
|
|
||||
--2.80%--filemap_get_pages
|
||||
filemap_read
|
||||
generic_file_read_iter
|
||||
ext4_file_read_iter
|
||||
vfs_read
|
||||
__x64_sys_pread64
|
||||
x64_sys_call
|
||||
do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
sccp
|
||||
|
||||
2.45% 1798 db-write [.] getPageNormal - -
|
||||
|
|
||||
---getPageNormal
|
||||
|
|
||||
--0.82%--0x75d555b7ac18
|
||||
0xa02000100010500
|
||||
0x200
|
||||
|
||||
2.27% 1661 db-write [.] getCellInfo - -
|
||||
|
|
||||
---getCellInfo
|
||||
|
|
||||
|--1.16%--0x75d555b872d8
|
||||
|
|
||||
--0.85%--0
|
||||
|
||||
1.87% 1371 db-write [k] __fdget - -
|
||||
|
|
||||
---__fdget
|
||||
|
|
||||
--1.85%--__x64_sys_pread64
|
||||
x64_sys_call
|
||||
do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
sccp
|
||||
|
||||
1.83% 1340 db-write [.] pcache1Unpin - -
|
||||
|
|
||||
---pcache1Unpin
|
||||
|
||||
1.55% 1134 db-write [.] pread - -
|
||||
|
|
||||
---pread
|
||||
|
||||
1.53% 1123 db-write [.] getAndInitPage - -
|
||||
|
|
||||
---getAndInitPage
|
||||
|
|
||||
--0.91%--0x75d555b7ac18
|
||||
0xa02000100010500
|
||||
0x200
|
||||
|
||||
1.45% 1063 db-write [.] sqlite3BtreeNext.isra.0 - -
|
||||
|
|
||||
---sqlite3BtreeNext.isra.0
|
||||
|
|
||||
--1.29%--0
|
||||
|
||||
1.40% 1023 db-write [.] sqlite3VdbeIdxRowid - -
|
||||
|
|
||||
---sqlite3VdbeIdxRowid
|
||||
|
||||
1.34% 979 db-write [.] btreeParseCellPtr - -
|
||||
|
|
||||
---btreeParseCellPtr
|
||||
|
|
||||
--0.99%--0
|
||||
|
||||
1.19% 874 db-write [.] pcache1FetchStage2 - -
|
||||
|
|
||||
---pcache1FetchStage2
|
||||
|
||||
1.01% 742 db-write [.] sqlite3PcacheRelease - -
|
||||
|
|
||||
---sqlite3PcacheRelease
|
||||
|
||||
1.01% 741 db-write [.] sqlite3VdbeRecordCompareWithSkip - -
|
||||
|
|
||||
---sqlite3VdbeRecordCompareWithSkip
|
||||
|
||||
0.97% 709 db-write [.] memcmp - -
|
||||
|
|
||||
---memcmp
|
||||
|
||||
0.95% 699 db-write [.] walFindFrame.constprop.0 - -
|
||||
|
|
||||
---walFindFrame.constprop.0
|
||||
|
||||
0.95% 698 db-write [.] moveToChild - -
|
||||
|
|
||||
---moveToChild
|
||||
|
|
||||
--0.56%--0xfdd00007f040000
|
||||
|
||||
0.90% 662 db-write [.] moveToRoot - -
|
||||
|
|
||||
---moveToRoot
|
||||
|
||||
0.88% 646 db-write [k] xas_load - -
|
||||
|
|
||||
---xas_load
|
||||
|
|
||||
--0.87%--filemap_get_read_batch
|
||||
filemap_get_pages
|
||||
filemap_read
|
||||
generic_file_read_iter
|
||||
ext4_file_read_iter
|
||||
vfs_read
|
||||
__x64_sys_pread64
|
||||
x64_sys_call
|
||||
do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
sccp
|
||||
|
||||
0.84% 615 db-write [.] sqlite3VdbeSerialGet - -
|
||||
|
|
||||
---sqlite3VdbeSerialGet
|
||||
|
||||
0.73% 535 db-write [k] filemap_read - -
|
||||
|
|
||||
---filemap_read
|
||||
|
|
||||
--0.71%--generic_file_read_iter
|
||||
ext4_file_read_iter
|
||||
vfs_read
|
||||
__x64_sys_pread64
|
||||
x64_sys_call
|
||||
do_syscall_64
|
||||
entry_SYSCALL_64_after_hwframe
|
||||
sccp
|
||||
|
||||
0.73% 533 db-write [.] vdbeCompareMemString - -
|
||||
|
|
||||
---vdbeCompareMemString
|
||||
|
||||
0.72% 528 db-write [.] btreeParseCellPtrIndex - -
|
||||
|
|
||||
---btreeParseCellPtrIndex
|
||||
0x75d555b872d8
|
||||
|
||||
0.68% 499 db-write [.] readDbPage - -
|
||||
|
|
||||
---readDbPage
|
||||
|
|
||||
--0.67%--0xa02000100010500
|
||||
0x200
|
||||
|
||||
0.64% 470 db-write [.] sqlite3VdbeFinishMoveto - -
|
||||
|
|
||||
---sqlite3VdbeFinishMoveto
|
||||
0
|
||||
|
||||
0.55% 401 db-write [.] decodeFlags - -
|
||||
|
|
||||
---decodeFlags
|
||||
|
||||
0.50% 365 db-write [k] xas_descend - -
|
||||
0.49% 362 db-write [k] aa_file_perm - -
|
||||
0.48% 351 db-write [.] sqlite3MemCompare - -
|
||||
0.48% 348 db-write [k] __fsnotify_parent - -
|
||||
0.47% 346 db-write [.] btreeInitPage - -
|
||||
0.45% 330 db-write [k] rw_verify_area - -
|
||||
0.45% 327 db-write [.] unixRead - -
|
||||
0.41% 303 db-write [.] sqlite3PagerUnrefNotNull - -
|
||||
0.27% 197 db-write [k] xas_start - -
|
||||
0.25% 186 db-write [.] binCollFunc - -
|
||||
0.22% 163 db-write [k] vfs_read - -
|
||||
0.14% 99 db-write [.] btreeNext.constprop.0 - -
|
||||
0.11% 82 db-write [k] ext4_file_read_iter - -
|
||||
0.11% 79 db-write [k] apparmor_file_permission - -
|
||||
0.10% 76 db-write [k] fput - -
|
||||
0.08% 61 db-write [.] moveToLeftmost - -
|
||||
0.08% 56 db-write [k] atime_needs_update - -
|
||||
0.08% 55 db-write [k] filemap_get_pages - -
|
||||
0.07% 50 db-write [k] copy_page_to_iter - -
|
||||
0.07% 49 db-write [k] __x64_sys_pread64 - -
|
||||
0.06% 46 db-write [k] _copy_to_iter - -
|
||||
0.05% 37 db-write [k] __xas_next - -
|
||||
0.05% 33 db-write [.] walHashGet - -
|
||||
0.04% 32 db-write [k] __rcu_read_lock - -
|
||||
0.04% 29 db-write [k] __rcu_read_unlock - -
|
||||
0.04% 29 db-write [k] current_time - -
|
||||
0.04% 28 db-write [k] security_file_permission - -
|
||||
0.04% 27 db-write [k] ktime_get_coarse_real_ts64 - -
|
||||
0.03% 24 db-read-1 [k] rep_movs_alternative - -
|
||||
0.03% 24 db-write [k] folio_mark_accessed - -
|
||||
0.03% 24 db-write [k] generic_file_read_iter - -
|
||||
0.03% 24 lws-main [.] remove_subscription_from_kind_index.part.0 - -
|
||||
0.03% 22 db-write [k] __x86_indirect_thunk_rax - -
|
||||
0.03% 21 db-read-1 [.] sqlite3VdbeExec - -
|
||||
0.03% 21 db-write [.] pcacheFetchFinishWithInit - -
|
||||
0.03% 20 db-read-1 [k] do_syscall_64 - -
|
||||
0.03% 19 db-write [.] btreeParseCellAdjustSizeForOverflow.isra.0 - -
|
||||
0.03% 19 lws-main [k] sock_poll - -
|
||||
0.02% 18 db-write [k] touch_atime - -
|
||||
0.02% 16 db-write [k] __cond_resched - -
|
||||
0.02% 15 db-read-1 [.] pcache1Fetch - -
|
||||
0.02% 15 db-write [k] syscall_exit_to_user_mode_prepare - -
|
||||
0.02% 15 db-write [k] x64_sys_call - -
|
||||
0.02% 14 db-read-1 [.] sccp - -
|
||||
0.02% 13 db-read-1 [.] __libc_malloc_impl - -
|
||||
0.02% 13 db-read-1 [k] filemap_get_read_batch - -
|
||||
0.02% 12 db-read-1 [k] __fdget - -
|
||||
0.02% 12 lws-main [k] _raw_spin_unlock_irqrestore - -
|
||||
0.02% 11 db-write [k] handle_softirqs - -
|
||||
0.02% 11 lws-main [.] has_subscriptions_for_kind - -
|
||||
0.01% 10 db-read-1 [.] sqlite3BtreeTableMoveto - -
|
||||
0.01% 10 lws-main [.] __libc_malloc_impl - -
|
||||
0.01% 9 db-read-1 [.] pread - -
|
||||
0.01% 9 lws-main [.] sccp - -
|
||||
0.01% 8 db-read-1 [.] pcache1FetchStage2 - -
|
||||
0.01% 8 db-write [.] __syscall_ret - -
|
||||
0.01% 8 lws-main [.] cJSON_IsNumber - -
|
||||
0.01% 8 lws-main [.] memcpy - -
|
||||
0.01% 7 db-read-1 [k] do_user_addr_fault - -
|
||||
0.01% 7 db-read-1 [.] sqlite3GetVarint - -
|
||||
0.01% 7 db-write [k] _raw_spin_unlock_irqrestore - -
|
||||
0.01% 7 db-write [k] make_vfsuid - -
|
||||
0.01% 6 db-read-1 [k] _raw_spin_unlock_irqrestore - -
|
||||
0.01% 6 db-read-1 [k] clear_page_orig - -
|
||||
0.01% 6 db-read-1 [k] xas_load - -
|
||||
0.01% 6 db-write [k] _raw_spin_unlock_irq - -
|
||||
0.01% 5 db-read-1 [k] __fsnotify_parent - -
|
||||
0.01% 5 db-read-1 [.] getAndInitPage - -
|
||||
0.01% 5 db-read-1 [.] walFindFrame.constprop.0 - -
|
||||
0.01% 5 db-read-1 [k] xas_descend - -
|
||||
0.01% 5 db-write [k] clear_page_orig - -
|
||||
0.01% 5 db-write [k] finish_task_switch.isra.0 - -
|
||||
0.01% 5 db-write [k] iowrite16 - -
|
||||
0.01% 5 db-write [k] make_vfsgid - -
|
||||
0.01% 5 db-write [.] sqlite3BtreeIndexMoveto - -
|
||||
0.01% 5 lws-main [k] __fdget - -
|
||||
0.01% 4 db-read-1 [.] __pthread_mutex_timedlock - -
|
||||
0.01% 4 db-read-1 [k] aa_file_perm - -
|
||||
0.01% 4 db-read-1 [.] btreeParseCellPtr - -
|
||||
0.01% 4 db-read-1 [.] memcpy - -
|
||||
0.01% 4 db-read-1 [.] sqlite3VdbeRecordCompareWithSkip - -
|
||||
0.01% 4 db-write [k] do_user_addr_fault - -
|
||||
0.01% 4 db-write [k] syscall_exit_to_user_mode - -
|
||||
0.01% 4 event-worker [.] secp256k1_fe_mul_inner - -
|
||||
0.01% 4 lws-main [.] _lws_plat_service_tsi.part.0 - -
|
||||
0.01% 4 lws-main [.] alloc_slot - -
|
||||
0.01% 4 lws-main [k] fput - -
|
||||
0.01% 4 lws-main [.] strlen - -
|
||||
0.01% 4 lws-main [k] tcp_poll - -
|
||||
0.00% 3 db-read-1 [.] __pthread_mutex_lock - -
|
||||
0.00% 3 db-read-1 [k] blk_cgroup_congested - -
|
||||
0.00% 3 db-read-1 [k] filemap_read - -
|
||||
0.00% 3 db-read-1 [.] getCellInfo - -
|
||||
0.00% 3 db-read-1 [.] sqlite3PcacheRelease - -
|
||||
0.00% 3 db-read-1 [.] whereScanNext - -
|
||||
0.00% 3 db-write [k] ___slab_alloc - -
|
||||
0.00% 3 db-write [k] __lruvec_stat_mod_folio - -
|
||||
0.00% 3 db-write [k] __next_zones_zonelist - -
|
||||
0.00% 3 db-write [k] smp_call_function_many_cond - -
|
||||
0.00% 3 db-write [.] sqlite3DbMallocRawNN - -
|
||||
0.00% 3 db-write [.] strlen - -
|
||||
0.00% 3 db-write [.] yy_reduce.isra.0 - -
|
||||
0.00% 3 lws-main [.] cJSON_IsArray - -
|
||||
0.00% 3 lws-main [k] do_syscall_64 - -
|
||||
0.00% 3 lws-main [k] finish_task_switch.isra.0 - -
|
||||
0.00% 3 lws-main [.] get_config_value_from_table - -
|
||||
0.00% 2 db-read-1 [.] __libc_free - -
|
||||
0.00% 2 db-read-1 [k] __lruvec_stat_mod_folio - -
|
||||
0.00% 2 db-read-1 [.] __pthread_mutex_unlock - -
|
||||
0.00% 2 db-read-1 [k] __rcu_read_lock - -
|
||||
0.00% 2 db-read-1 [.] btreeInitPage - -
|
||||
0.00% 2 db-read-1 [.] decodeFlags - -
|
||||
0.00% 2 db-read-1 [k] down_write - -
|
||||
0.00% 2 db-read-1 [.] moveToRoot - -
|
||||
0.00% 2 db-read-1 [k] native_write_msr - -
|
||||
0.00% 2 db-read-1 [.] pcache1Unpin - -
|
||||
0.00% 2 db-read-1 [.] propagateConstantExprRewrite - -
|
||||
0.00% 2 db-read-1 [.] readDbPage - -
|
||||
0.00% 2 db-read-1 [.] sqlite3BtreeIndexMoveto - -
|
||||
0.00% 2 db-read-1 [.] sqlite3BtreeNext.isra.0 - -
|
||||
0.00% 2 db-read-1 [.] sqlite3WhereBegin - -
|
||||
0.00% 2 db-read-1 [.] unixRead - -
|
||||
0.00% 2 db-read-1 [.] whereLoopAddBtreeIndex - -
|
||||
0.00% 2 db-read-1 [k] xas_start - -
|
||||
0.00% 2 db-write [k] inode_to_bdi - -
|
||||
0.00% 2 db-write [k] kmem_cache_alloc - -
|
||||
0.00% 2 db-write [k] native_write_msr - -
|
||||
0.00% 2 db-write [k] pvclock_clocksource_read_nowd - -
|
||||
0.00% 2 db-write [.] pwrite - -
|
||||
0.00% 2 db-write [.] sqlite3WalCheckpoint - -
|
||||
0.00% 2 lws-main [.] __libc_free - -
|
||||
0.00% 2 lws-main [.] __lock - -
|
||||
0.00% 2 lws-main [.] __unlock - -
|
||||
0.00% 2 lws-main [k] __x86_indirect_thunk_rax - -
|
||||
0.00% 2 lws-main [.] broadcast_event_to_subscriptions - -
|
||||
0.00% 2 lws-main [.] decfloat - -
|
||||
0.00% 2 lws-main [k] do_user_addr_fault - -
|
||||
0.00% 2 lws-main [k] eventfd_poll - -
|
||||
0.00% 2 lws-main [k] nft_do_chain - -
|
||||
0.00% 2 lws-main [.] nostr_relay_callback - -
|
||||
0.00% 2 lws-main [.] print_value - -
|
||||
0.00% 2 lws-main [k] pvclock_clocksource_read_nowd - -
|
||||
0.00% 2 lws-main [.] strcmp - -
|
||||
0.00% 2 lws-main [k] tcp_in_window - -
|
||||
0.00% 1 db-read-1 [k] ___slab_alloc - -
|
||||
0.00% 1 db-read-1 [k] __anon_vma_interval_tree_remove - -
|
||||
0.00% 1 db-read-1 [k] __raw_callee_save___pv_queued_spin_unlock - -
|
||||
0.00% 1 db-read-1 [k] __rcu_read_unlock - -
|
||||
0.00% 1 db-read-1 [.] __timedwait_cp - -
|
||||
0.00% 1 db-read-1 [k] __tlb_remove_page_size - -
|
||||
0.00% 1 db-read-1 [.] allocateCursor - -
|
||||
0.00% 1 db-read-1 [k] anon_vma_interval_tree_insert - -
|
||||
0.00% 1 db-read-1 [.] binCollFunc - -
|
||||
0.00% 1 db-read-1 [.] btreeBeginTrans - -
|
||||
0.00% 1 db-read-1 [.] btreeParseCellPtrIndex - -
|
||||
0.00% 1 db-read-1 [k] current_obj_cgroup - -
|
||||
0.00% 1 db-read-1 [k] do_vmi_align_munmap - -
|
||||
0.00% 1 db-read-1 [.] exprDup - -
|
||||
0.00% 1 db-read-1 [.] exprNodeIsConstant - -
|
||||
0.00% 1 db-read-1 [k] finish_task_switch.isra.0 - -
|
||||
0.00% 1 db-read-1 [k] folio_add_lru - -
|
||||
0.00% 1 db-read-1 [k] folio_add_new_anon_rmap - -
|
||||
0.00% 1 db-read-1 [.] free_req_payload_main.part.0 - -
|
||||
0.00% 1 db-read-1 [k] futex_q_lock - -
|
||||
0.00% 1 db-read-1 [.] getPageNormal - -
|
||||
0.00% 1 db-read-1 [k] get_mem_cgroup_from_mm - -
|
||||
0.00% 1 db-read-1 [.] get_meta - -
|
||||
0.00% 1 db-read-1 [k] handle_softirqs - -
|
||||
0.00% 1 db-read-1 [k] hugepage_pmd_enabled - -
|
||||
0.00% 1 db-read-1 [.] indexCellCompare.isra.0 - -
|
||||
0.00% 1 db-read-1 [k] kmem_cache_alloc - -
|
||||
0.00% 1 db-read-1 [k] kmem_cache_free - -
|
||||
0.00% 1 db-read-1 [k] lock_vma_under_rcu - -
|
||||
0.00% 1 db-read-1 [k] make_vfsuid - -
|
||||
0.00% 1 db-read-1 [k] mas_walk - -
|
||||
0.00% 1 db-read-1 [k] mem_cgroup_commit_charge - -
|
||||
0.00% 1 db-read-1 [.] memcmp - -
|
||||
0.00% 1 db-read-1 [k] obj_cgroup_uncharge_pages - -
|
||||
0.00% 1 db-read-1 [k] post_alloc_hook - -
|
||||
0.00% 1 db-read-1 [.] pthreadMutexLeave - -
|
||||
0.00% 1 db-read-1 [k] rcu_nocb_unlock_irqrestore.part.0 - -
|
||||
0.00% 1 db-read-1 [.] resolveP2Values - -
|
||||
0.00% 1 db-read-1 [k] rw_verify_area - -
|
||||
0.00% 1 db-read-1 [k] smp_call_function_many_cond - -
|
||||
0.00% 1 db-read-1 [.] sqlite3CodeRhsOfIN - -
|
||||
0.00% 1 db-read-1 [.] sqlite3DbMallocRawNN - -
|
||||
0.00% 1 db-read-1 [.] sqlite3DbNNFreeNN - -
|
||||
0.00% 1 db-read-1 [.] sqlite3ExprIfFalse - -
|
||||
0.00% 1 db-read-1 [.] sqlite3GetVarint32 - -
|
||||
0.00% 1 db-read-1 [.] sqlite3KeyInfoAlloc - -
|
||||
0.00% 1 db-read-1 [.] sqlite3MemCompare - -
|
||||
0.00% 1 db-read-1 [.] sqlite3Select - -
|
||||
0.00% 1 db-read-1 [.] sqlite3SelectPopWith - -
|
||||
0.00% 1 db-read-1 [.] sqlite3SrcListShiftJoinType.isra.0 - -
|
||||
0.00% 1 db-read-1 [.] sqlite3VdbeFinishMoveto - -
|
||||
0.00% 1 db-read-1 [.] sqlite3VdbeFreeCursorNN - -
|
||||
0.00% 1 db-read-1 [.] sqlite3VdbeMemFromBtree - -
|
||||
0.00% 1 db-read-1 [.] sqlite3VdbeSerialGet - -
|
||||
0.00% 1 db-read-1 [.] sqlite3WalkSelect - -
|
||||
0.00% 1 db-read-1 [.] sqlite3WhereExprUsageNN - -
|
||||
0.00% 1 db-read-1 [k] uncharge_batch - -
|
||||
0.00% 1 db-read-1 [.] unixShmBarrier - -
|
||||
0.00% 1 db-read-1 [k] update_blocked_averages - -
|
||||
0.00% 1 db-read-1 [k] vm_area_dup - -
|
||||
0.00% 1 db-read-1 [k] vm_unmapped_area - -
|
||||
0.00% 1 db-read-1 [k] vma_adjust_trans_huge - -
|
||||
0.00% 1 db-read-1 [.] whereLoopFindLesser - -
|
||||
0.00% 1 db-read-1 [.] wherePathSolver.isra.0 - -
|
||||
0.00% 1 db-read-1 [.] yy_reduce.isra.0 - -
|
||||
0.00% 1 db-read-1 [k] zap_pte_range - -
|
||||
0.00% 1 db-write [k] __block_commit_write - -
|
||||
0.00% 1 db-write [.] __libc_free - -
|
||||
0.00% 1 db-write [.] __libc_malloc_impl - -
|
||||
0.00% 1 db-write [k] __memcg_slab_post_alloc_hook - -
|
||||
0.00% 1 db-write [k] __mmap_region - -
|
||||
0.00% 1 db-write [k] __mod_memcg_lruvec_state - -
|
||||
0.00% 1 db-write [.] __pthread_mutex_unlock - -
|
||||
0.00% 1 db-write [k] __pv_queued_spin_lock_slowpath - -
|
||||
0.00% 1 db-write [k] __radix_tree_lookup - -
|
||||
0.00% 1 db-write [k] __rb_insert_augmented - -
|
||||
0.00% 1 db-write [k] __sg_alloc_table - -
|
||||
0.00% 1 db-write [k] __slab_free - -
|
||||
0.00% 1 db-write [k] __sock_wfree - -
|
||||
0.00% 1 db-write [k] __tlb_remove_page_size - -
|
||||
0.00% 1 db-write [k] _raw_read_lock - -
|
||||
0.00% 1 db-write [k] _raw_spin_lock - -
|
||||
0.00% 1 db-write [.] accessPayload - -
|
||||
0.00% 1 db-write [.] applyAffinity - -
|
||||
0.00% 1 db-write [k] balance_dirty_pages_ratelimited_flags - -
|
||||
0.00% 1 db-write [k] blk_finish_plug - -
|
||||
0.00% 1 db-write [k] blkcg_set_ioprio - -
|
||||
0.00% 1 db-write [k] count_memcg_events.constprop.0 - -
|
||||
0.00% 1 db-write [k] crc32_body - -
|
||||
0.00% 1 db-write [.] dbReallocFinish - -
|
||||
0.00% 1 db-write [k] ext4_da_map_blocks.constprop.0 - -
|
||||
0.00% 1 db-write [k] ext4_mb_mark_context - -
|
||||
0.00% 1 db-write [k] ext4_readahead - -
|
||||
0.00% 1 db-write [k] ext4_sb_block_valid - -
|
||||
0.00% 1 db-write [k] fault_in_readable - -
|
||||
0.00% 1 db-write [k] file_modified - -
|
||||
0.00% 1 db-write [k] filemap_get_entry - -
|
||||
0.00% 1 db-write [k] flock64_to_posix_lock - -
|
||||
0.00% 1 db-write [k] folio_add_lru - -
|
||||
0.00% 1 db-write [k] folio_add_new_anon_rmap - -
|
||||
0.00% 1 db-write [k] folio_mapping - -
|
||||
0.00% 1 db-write [k] futex_q_lock - -
|
||||
0.00% 1 db-write [.] getDigits - -
|
||||
0.00% 1 db-write [k] get_mem_cgroup_from_mm - -
|
||||
0.00% 1 db-write [.] get_meta - -
|
||||
0.00% 1 db-write [k] get_pfnblock_flags_mask - -
|
||||
0.00% 1 db-write [k] get_unmapped_area - -
|
||||
0.00% 1 db-write [k] handle_mm_fault - -
|
||||
0.00% 1 db-write [k] jbd2_journal_dirty_metadata - -
|
||||
0.00% 1 db-write [k] kfree - -
|
||||
0.00% 1 db-write [k] kmem_cache_free - -
|
||||
0.00% 1 db-write [k] lock_vma_under_rcu - -
|
||||
0.00% 1 db-write [k] lruvec_stat_mod_folio - -
|
||||
0.00% 1 db-write [k] mas_leaf_max_gap - -
|
||||
0.00% 1 db-write [k] mem_cgroup_commit_charge - -
|
||||
0.00% 1 db-write [k] mem_cgroup_flush_stats.part.0 - -
|
||||
0.00% 1 db-write [k] mempool_alloc_slab - -
|
||||
0.00% 1 db-write [k] mod_delayed_work_on - -
|
||||
0.00% 1 db-write [k] net_rx_action - -
|
||||
0.00% 1 db-write [k] nf_conntrack_tcp_packet - -
|
||||
0.00% 1 db-write [.] pagerUnlockAndRollback - -
|
||||
0.00% 1 db-write [.] pcache1Free - -
|
||||
0.00% 1 db-write [k] perf_event_mmap - -
|
||||
0.00% 1 db-write [k] perf_event_mmap_event - -
|
||||
0.00% 1 db-write [k] pmd_val - -
|
||||
0.00% 1 db-write [.] pthreadMutexAlloc - -
|
||||
0.00% 1 db-write [k] qdisc_pkt_len_init - -
|
||||
0.00% 1 db-write [.] queue_pop - -
|
||||
0.00% 1 db-write [.] releaseMemArray.part.0 - -
|
||||
0.00% 1 db-write [k] release_pages - -
|
||||
0.00% 1 db-write [k] scsi_mq_get_budget - -
|
||||
0.00% 1 db-write [.] seekAndWriteFd - -
|
||||
0.00% 1 db-write [k] sk_forced_mem_schedule - -
|
||||
0.00% 1 db-write [k] slab_update_freelist.isra.0 - -
|
||||
0.00% 1 db-write [.] sqlite3AtoF - -
|
||||
0.00% 1 db-write [.] sqlite3BeginWriteOperation - -
|
||||
0.00% 1 db-write [.] sqlite3ExprDeleteNN - -
|
||||
0.00% 1 db-write [.] sqlite3GenerateRowDelete - -
|
||||
0.00% 1 db-write [.] sqlite3GetToken - -
|
||||
0.00% 1 db-write [.] sqlite3GetVarint32 - -
|
||||
0.00% 1 db-write [.] sqlite3KeyInfoOfIndex - -
|
||||
0.00% 1 db-write [.] sqlite3LocateTable - -
|
||||
0.00% 1 db-write [.] sqlite3OpenTableAndIndices - -
|
||||
0.00% 1 db-write [.] sqlite3RunParser - -
|
||||
0.00% 1 db-write [.] sqlite3TriggerList.isra.0 - -
|
||||
0.00% 1 db-write [.] sqlite3Update.constprop.0 - -
|
||||
0.00% 1 db-write [.] sqlite3VdbeFreeCursorNN - -
|
||||
0.00% 1 db-write [k] update_blocked_averages - -
|
||||
0.00% 1 db-write [k] userfaultfd_unmap_complete - -
|
||||
0.00% 1 db-write [k] virtscsi_queuecommand - -
|
||||
0.00% 1 db-write [k] vm_unmapped_area - -
|
||||
0.00% 1 db-write [.] walChecksumBytes - -
|
||||
0.00% 1 db-write [.] walIndexAppend - -
|
||||
0.00% 1 db-write [.] walMerge - -
|
||||
0.00% 1 db-write [k] xas_find - -
|
||||
0.00% 1 db-write [k] zap_pte_range - -
|
||||
0.00% 1 event-worker [k] __fdget_raw - -
|
||||
0.00% 1 event-worker [k] _raw_spin_unlock_irq - -
|
||||
0.00% 1 event-worker [k] iowrite16 - -
|
||||
0.00% 1 event-worker [.] memchr - -
|
||||
0.00% 1 event-worker [.] print_value - -
|
||||
0.00% 1 event-worker [.] sqlite3AuthCheck - -
|
||||
0.00% 1 event-worker [.] sqlite3KeyInfoAlloc - -
|
||||
0.00% 1 lws-main [k] __alloc_pages - -
|
||||
0.00% 1 lws-main [k] __alloc_skb - -
|
||||
0.00% 1 lws-main [k] __free_pages - -
|
||||
0.00% 1 lws-main [k] __mmap_region - -
|
||||
0.00% 1 lws-main [k] __mod_timer - -
|
||||
0.00% 1 lws-main [k] __pollwait - -
|
||||
0.00% 1 lws-main [.] __pthread_mutex_unlock - -
|
||||
0.00% 1 lws-main [k] __pv_queued_spin_lock_slowpath - -
|
||||
0.00% 1 lws-main [k] __raw_spin_lock_irqsave - -
|
||||
0.00% 1 lws-main [k] __rcu_read_unlock - -
|
||||
0.00% 1 lws-main [k] __sock_wfree - -
|
||||
0.00% 1 lws-main [k] __sys_sendto - -
|
||||
0.00% 1 lws-main [k] __tcp_transmit_skb - -
|
||||
0.00% 1 lws-main [.] __vdso_clock_gettime - -
|
||||
0.00% 1 lws-main [k] __x64_sys_sendto - -
|
||||
0.00% 1 lws-main [k] _raw_spin_lock - -
|
||||
0.00% 1 lws-main [k] apparmor_file_permission - -
|
||||
0.00% 1 lws-main [k] arch_get_unmapped_area_topdown - -
|
||||
0.00% 1 lws-main [.] cJSON_Delete - -
|
||||
0.00% 1 lws-main [.] cJSON_Duplicate_rec - -
|
||||
0.00% 1 lws-main [.] cJSON_GetNumberValue - -
|
||||
0.00% 1 lws-main [k] call_rcu - -
|
||||
0.00% 1 lws-main [k] clear_page_orig - -
|
||||
0.00% 1 lws-main [k] cond_accept_memory - -
|
||||
0.00% 1 lws-main [.] copysignl - -
|
||||
0.00% 1 lws-main [k] do_poll.constprop.0 - -
|
||||
0.00% 1 lws-main [k] do_sys_poll - -
|
||||
0.00% 1 lws-main [k] find_exception - -
|
||||
0.00% 1 lws-main [k] futex_q_lock - -
|
||||
0.00% 1 lws-main [k] get_l4proto - -
|
||||
0.00% 1 lws-main [.] get_meta - -
|
||||
0.00% 1 lws-main [k] get_page_from_freelist - -
|
||||
0.00% 1 lws-main [.] handle_req_message - -
|
||||
0.00% 1 lws-main [.] ip_ban_cleanup - -
|
||||
0.00% 1 lws-main [k] ip_finish_output - -
|
||||
0.00% 1 lws-main [k] ip_rcv_core - -
|
||||
0.00% 1 lws-main [k] ipv4_conntrack_defrag - -
|
||||
0.00% 1 lws-main [k] kmem_cache_free - -
|
||||
0.00% 1 lws-main [k] kvm_clock_get_cycles - -
|
||||
0.00% 1 lws-main [.] lws_check_utf8 - -
|
||||
0.00% 1 lws-main [.] lws_handle_POLLOUT_event - -
|
||||
0.00% 1 lws-main [.] lws_parse_ws - -
|
||||
0.00% 1 lws-main [.] lws_set_timeout - -
|
||||
0.00% 1 lws-main [.] lws_ssl_capable_read_no_ssl - -
|
||||
0.00% 1 lws-main [.] lws_tls_fake_POLLIN_for_buffered - -
|
||||
0.00% 1 lws-main [.] lws_write - -
|
||||
0.00% 1 lws-main [k] mas_ascend - -
|
||||
0.00% 1 lws-main [k] mas_wr_append - -
|
||||
0.00% 1 lws-main [k] mod_memcg_state - -
|
||||
0.00% 1 lws-main [k] native_write_msr - -
|
||||
0.00% 1 lws-main [k] nf_confirm - -
|
||||
0.00% 1 lws-main [.] nontrivial_free - -
|
||||
0.00% 1 lws-main [.] parse_string - -
|
||||
0.00% 1 lws-main [k] perf_iterate_ctx - -
|
||||
0.00% 1 lws-main [k] poll_select_set_timeout - -
|
||||
0.00% 1 lws-main [.] printf_core - -
|
||||
0.00% 1 lws-main [k] refill_stock - -
|
||||
0.00% 1 lws-main [.] refresh_hot_config_if_needed - -
|
||||
0.00% 1 lws-main [k] rep_movs_alternative - -
|
||||
0.00% 1 lws-main [.] rops_handle_POLLIN_ws - -
|
||||
0.00% 1 lws-main [k] sk_forced_mem_schedule - -
|
||||
0.00% 1 lws-main [k] skb_copy_bits - -
|
||||
0.00% 1 lws-main [k] skb_page_frag_refill - -
|
||||
0.00% 1 lws-main [k] skb_release_data - -
|
||||
0.00% 1 lws-main [k] tcp_ack_update_window.isra.0 - -
|
||||
0.00% 1 lws-main [k] tcp_chrono_stop - -
|
||||
0.00% 1 lws-main [k] tcp_current_mss - -
|
||||
0.00% 1 lws-main [k] tcp_data_queue - -
|
||||
0.00% 1 lws-main [k] tcp_sendmsg_locked - -
|
||||
0.00% 1 lws-main [k] tcp_v4_rcv - -
|
||||
0.00% 1 lws-main [k] tcp_write_xmit - -
|
||||
0.00% 1 lws-main [k] up_read - -
|
||||
0.00% 1 lws-main [.] validate_filter_array - -
|
||||
0.00% 1 lws-main [.] validate_filter_values - -
|
||||
0.00% 1 lws-main [.] vfprintf - -
|
||||
|
||||
|
||||
#
|
||||
# (Cannot load tips.txt file, please install perf!)
|
||||
#
|
||||
@@ -0,0 +1,5 @@
|
||||
Profiling PID: 2245961
|
||||
CLK_TCK=100
|
||||
Starting perf record in background...
|
||||
perf_pid=2246179
|
||||
Done. Artifacts in /tmp/c_relay_thread_profile_20260402_012527
|
||||
@@ -0,0 +1,49 @@
|
||||
timestamp,tid,thread_name,cpu_pct,delta_ticks,total_ticks
|
||||
1775093128,2245961,lws-main,0.00,0,36
|
||||
1775093128,2245969,db-read-1,0.00,0,26
|
||||
1775093128,2245970,db-write,0.00,0,540
|
||||
1775093128,2245971,event-worker,0.00,0,0
|
||||
1775093133,2245961,lws-main,0.20,1,37
|
||||
1775093133,2245969,db-read-1,0.00,0,26
|
||||
1775093133,2245970,db-write,0.20,1,541
|
||||
1775093133,2245971,event-worker,0.00,0,0
|
||||
1775093138,2245961,lws-main,0.20,1,38
|
||||
1775093138,2245969,db-read-1,0.20,1,27
|
||||
1775093138,2245970,db-write,27.60,138,679
|
||||
1775093138,2245971,event-worker,0.00,0,0
|
||||
1775093143,2245961,lws-main,0.00,0,38
|
||||
1775093143,2245969,db-read-1,0.00,0,27
|
||||
1775093143,2245970,db-write,0.00,0,679
|
||||
1775093143,2245971,event-worker,0.00,0,0
|
||||
1775093148,2245961,lws-main,0.00,0,38
|
||||
1775093148,2245969,db-read-1,0.60,3,30
|
||||
1775093148,2245970,db-write,27.40,137,816
|
||||
1775093148,2245971,event-worker,0.00,0,0
|
||||
1775093153,2245961,lws-main,0.20,1,39
|
||||
1775093153,2245969,db-read-1,0.20,1,31
|
||||
1775093153,2245970,db-write,67.20,336,1152
|
||||
1775093153,2245971,event-worker,0.00,0,0
|
||||
1775093158,2245961,lws-main,0.20,1,40
|
||||
1775093158,2245969,db-read-1,0.20,1,32
|
||||
1775093158,2245970,db-write,40.00,200,1352
|
||||
1775093158,2245971,event-worker,0.00,0,0
|
||||
1775093163,2245961,lws-main,0.00,0,40
|
||||
1775093163,2245969,db-read-1,0.20,1,33
|
||||
1775093163,2245970,db-write,27.00,135,1487
|
||||
1775093163,2245971,event-worker,0.00,0,0
|
||||
1775093168,2245961,lws-main,0.20,1,41
|
||||
1775093168,2245969,db-read-1,0.00,0,33
|
||||
1775093168,2245970,db-write,26.60,133,1620
|
||||
1775093168,2245971,event-worker,0.00,0,0
|
||||
1775093173,2245961,lws-main,0.00,0,41
|
||||
1775093173,2245969,db-read-1,0.00,0,33
|
||||
1775093173,2245970,db-write,0.00,0,1620
|
||||
1775093173,2245971,event-worker,0.00,0,0
|
||||
1775093178,2245961,lws-main,0.20,1,42
|
||||
1775093178,2245969,db-read-1,0.00,0,33
|
||||
1775093178,2245970,db-write,64.40,322,1942
|
||||
1775093178,2245971,event-worker,0.00,0,0
|
||||
1775093183,2245961,lws-main,0.00,0,42
|
||||
1775093183,2245969,db-read-1,0.40,2,35
|
||||
1775093183,2245970,db-write,56.40,282,2224
|
||||
1775093183,2245971,event-worker,0.00,0,0
|
||||
|
@@ -0,0 +1,11 @@
|
||||
==========================================
|
||||
Thread CPU Summary (avg + max over run)
|
||||
==========================================
|
||||
Run timestamp (UTC): 20260402_012527
|
||||
Duration: 60s, Interval: 5s
|
||||
|
||||
2245970 db-write 28.07 67.20
|
||||
2245969 db-read-1 0.15 0.60
|
||||
2245961 lws-main 0.10 0.20
|
||||
2245971 event-worker 0.00 0.00
|
||||
TID THREAD AVG_CPU% MAX_CPU%
|
||||
Reference in New Issue
Block a user