tinycorelinux / tinyx

GNU General Public License v3.0
222 stars 30 forks source link

Performance issue #7

Open LaithOsama opened 1 week ago

LaithOsama commented 1 week ago

I apologize for opening this issue as I'm not a TinyCore user, but this is my last resort.

For several months, I've been trying to get tinyx to run at full speed without success. Despite extensive research and various attempts, the performance remains slow. I've attached a video that demonstrates the issue, although it's longer than intended due to the slowness.

https://github.com/user-attachments/assets/70f70c9d-2891-4b04-b922-5b549dabaf81

I'm using Oasis and compiled tinyx from source. My window manager is a lightly customized version of dwm, but the problem persists with the standard version as well.

In the kernel, I've enabled several framebuffer and Xfbdev related options, including:

CONFIG_FB=y
CONFIG_VGA_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FB_EFI=y
CONFIG_FB_DEVICE=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=300

CONFIG_TTY=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_UNIX98_PTYS=y

CONFIG_DRM=y
CONFIG_DRM_I915=y
CONFIG_DRM_I915_USERPTR=y

In one attempt, I even enabled all framebuffer-related options, but the issue persisted.

I believe debugging this problem could lead to a solution, but I'm unsure where to start.

rofl0r commented 1 week ago

try

 CONFIG_DRM_I915=y
 CONFIG_DRM_I915_ALPHA_SUPPORT=y
 CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_I915_FBDEV=y

for CONFIG_DRM_I915_ALPHA_SUPPORT pass i915.alpha_support=1 on the kernel command line. also in my notes on kernel config i have the following: "https://wiki.gentoo.org/wiki/Xorg/Configuration KMS and FB drivers conflict". the accompanying commit disables all CONFIGFB items. see 86cba4d4b7de4cf240b8a2e71a93d4657cca4464 in sabotage linux. i recall that before disabling those i had some issues with FB, but i dont recall whether it was performance related.

LaithOsama commented 1 week ago

I've CONFIG_DRM_I915 built-in, but I couldn't found the other three options in v6.10

LaithOsama commented 1 week ago

To have a better idea.. here is my kernel config

# Optimize for 64-bit
CONFIG_64BIT=y

################
# CPU Settings #
################

# Enable symmetric multi-processing for better performance
CONFIG_SMP=y

# Optimize for Intel CPUs
CONFIG_PROCESSOR_SELECT=y
CONFIG_CPU_SUP_INTEL=y

# Set the maximum cores count of CPU, and multiply it by 2 if it
# supports Hyper-Threading (For example, an Intel i5-4300M CPU, has 2 physical cores and supports Hyper-Threading so 2 * 2 = 4)
CONFIG_NR_CPUS=4

# Enable core-specific optimizations for improved performance
CONFIG_MCORE2=y

# Enable CPU frequency scaling for power savings
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y

# Enable Intel-specific power management features
# CONFIG_INTEL_IDLE=y

# Enable hardware-based CPU performance monitoring,
# as it reports overheating and other hardware issues to the kernel
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=y
CONFIG_PERF_EVENTS_INTEL_CSTATE=y

# Enable CPU feature monitoring for optimization
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y

# Enable SMT scheduler support if CPU supports Hyper-Threading
CONFIG_SCHED_SMT=y

# Enable Virtualization with KVM support for Intel CPUs
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_INTEL=y

###################
# Memory Settings #
###################

# Enable memory compaction for better utilization
CONFIG_COMPACTION=y

# Enable Kernel Samepage Merging for lower memory usage
CONFIG_KSM=y

# Set the lowest possible default mmap address for efficient memory utilization
CONFIG_DEFAULT_MMAP_MIN_ADDR=0

# Use the SLUB allocator for better performance and lower overhead
CONFIG_SLUB=y
CONFIG_SLAB_MERGE_DEFAULT=y
CONFIG_SLUB_CPU_PARTIAL=y

# Disable heap randomization to lower system overhead 
CONFIG_COMPAT_BRK=y

# Enable Sparse Memory for better memory utilization
CONFIG_SPARSEMEM_VMEMMAP=y

#################
# Disk Settings #
#################

# Enable block devices
CONFIG_BLOCK=y

# Enable advanced partition support
CONFIG_PARTITION_ADVANCED=y

# Enable EFI partition support
CONFIG_EFI_PARTITION=y

# Enable BFQ I/O scheduler for better performance and lower latency
CONFIG_IOSCHED_BFQ=y

# Enable ext4 filesystem support
CONFIG_EXT4_FS=y
# CONFIG_EXT4_USE_FOR_EXT2 needed to use one filesystem driver for ext2, ext3, and ext4 filesystems which reduce kernel size.

# Enable FUSE for user-space file systems to mount portable devices (mobile phones, cameras... etc)
CONFIG_FUSE_FS=y

# Enable FAT filesystem support with UTF-8 encoding
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_UTF8=y

# Enable native ext4 per file encryption
CONFIG_FS_ENCRYPTION=y

# Misc
CONFIG_MISC_FILESYSTEMS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NET_9P=y
CONFIG_9P_FS=y

# Add loop device support for more storage flexibility,
# as it allows you to mount images (files with img, iso... etc extensions) as if they were devices.
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=y

####################
# Network Settings #
####################

# Enable basic networking support
CONFIG_NET=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y

# Ethernet support (it's commented out since I don't use it currently)
# CONFIG_ETHERNET
# CONFIG_NET_VENDOR_INTEL
# CONFIG_E1000E

# Enable wireless networking support
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_INTEL=y
CONFIG_IWLWIFI=y
CONFIG_IWLMVM=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_MAC80211=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
# CONFIG_RFKILL
# CONFIG_RFKILL_INPUT

# Enable Bluetooth Support
CONFIG_BT=y
CONFIG_BT_HCIBTUSB=y
CONFIG_BT_BREDR=y
CONFIG_BT_HS=y
CONFIG_BT_LE=y
CONFIG_BT_SCO=y
CONFIG_BT_SCO=y
CONFIG_SND_SOC=y
CONFIG_BT_HCIBTUSB_BCM=y

# Specify additional firmware directory and files
CONFIG_EXTRA_FIRMWARE_DIR="/src/firmwares"
CONFIG_EXTRA_FIRMWARE="06-3c-03 iwlwifi-7260-17.ucode"

####################
# Power Management #
####################

# Enable suspend to RAM
CONFIG_SUSPEND=y

# Enable power saving functionality of I/O devices
CONFIG_PM=y

# Enable ACPI power management
CONFIG_ACPI=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_X86_PM_TIMER=y

# Enable Intel-specific power management features for modern Intel processors (Sandy Bridge and later)
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=y

# Enable thermal management
CONFIG_THERMAL=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_STEP_WISE=y

# Enable coretemp sensor for CPU temperature monitoring
CONFIG_SENSORS_CORETEMP=y
CONFIG_X86_PKG_TEMP_THERMAL=y

###########################
# General Kernel Settings #
###########################

# Set No Forced Preemption, for maximum throughput and performance
CONFIG_PREEMPT_NONE=y
CONFIG_HZ_100=y

# This crap is only needed for KVM support
CONFIG_HIGH_RES_TIMERS=y

# Enable CPU accounting for better performance monitoring
CONFIG_TICK_CPU_ACCOUNTING=y

# Access kernel configuration via /proc/config.gz
# I don't really need it as I have a backup for it anyway
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

# Optimize for performance
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y

# Enable multiuser support if you wanted to use a non-root user
CONFIG_MULTIUSER=y

# Enable fhandle since excluding this option may result an unbootable kernel and other issues, in my case; it's not
# CONFIG_FHANDLE 

# Enable futexes for efficient user-space locking as it's required by all glibc-based applications
CONFIG_FUTEX=y

# Enable epoll for efficient I/O multiplexing, needed for the /bin/init to bootup
CONFIG_EPOLL=y

# Enable signalfd for efficient signal handling, needed for the /bin/init to bootup
CONFIG_SIGNALFD=y

# Enable timerfd for efficient timer management, needed for the /bin/init to bootup
CONFIG_TIMERFD=y

# Enable eventfd for efficient event notification, needed for the /bin/init to bootup
CONFIG_EVENTFD=y

# Enable advise syscalls for better memory management, it's needed by chromium based browsers
CONFIG_ADVISE_SYSCALLS=y

# Enable POSIX timers since it needed for velox's status_bar.c
CONFIG_POSIX_TIMERS=y

# Enable rseq for faster user-space access to per-CPU data
CONFIG_RSEQ=y

# Enable printk for logging and dmesg
CONFIG_PRINTK=y

# Enable full base functionality as it adds a slight performance boost
CONFIG_BASE_FULL=y

# Optimize for performance by omitting frame pointers, to get simple wchan values  
CONFIG_SCHED_OMIT_FRAME_POINTER=y

# Enable MTRR support for better memory performance & management
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1

# Enable PAT (Page Attribute Tables) for better memory performance & management
CONFIG_X86_PAT=y

# Enable boolean kernel command line parsing
CONFIG_CMDLINE_BOOL=y
# Set root filesystem and type, usefull to boot without initramfs
CONFIG_CMDLINE="root=/dev/sda2 quiet rootfstype=ext4"

# Enables standard file locking support, excluding it WILL result a read-only root partition
CONFIG_FILE_LOCKING=y

# Enable inotify for monitoring file system events
CONFIG_INOTIFY_USER=y

# Enable /proc and sysctl support
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y

# Enable sysfs for exposing kernel objects
CONFIG_SYSFS=y

# Set default locale to UTF-8
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_UTF8=y

# Enable ELF and script binary formats
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_SCRIPT=y
# CONFIG_BINFMT_MISC might be useful when running emulators and virtual machines

# Enable System V IPC for inter-process communication
CONFIG_SYSVIPC=y

# Enable kernel zstd compression for better performance
CONFIG_KERNEL_ZSTD=y

# Set default init process
CONFIG_DEFAULT_INIT="/bin/sinit"

# Enable expert settings for more configuration options
CONFIG_EXPERT=y

# Enable namespaces
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y

# Disable legacy applications to improve security(?)
CONFIG_LEGACY_VSYSCALL_NONE=y

##################
# Device Support #
##################

# Enable SCSI disk support
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
# CONFIG_BLK_DEV_SR may be needed to use a CD/DVD drive
# CONFIG_SCSI_SCAN_ASYNC this may speeds up boot time

# Enable ATA/SATA support
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
# Include this if you have CD/DVD drive as it'll save energy when the drive isn't in use
# CONFIG_SATA_ZPODD 

# Enable HID support for input devices
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_GENERIC=y
CONFIG_USB_HID=y
CONFIG_HID_LENOVO=y

# Enable Plug and Play support
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

# Enable Intel MEI support
CONFIG_INTEL_MEI=y
CONFIG_INTEL_MEI_ME=y

# Enable devtmpfs for managing device nodes
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

# Enable stand-alone mode
CONFIG_STANDALONE=y

# Prevent firmware build
CONFIG_PREVENT_FIRMWARE_BUILD=y

# Enable firmware loader
CONFIG_FW_LOADER=y

# Enable I2C support
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_I801=y

# Enable RTC support
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_CMOS=y

# Enable USB support
CONFIG_USB_SUPPORT=y
CONFIG_USB=y
CONFIG_USB_PCI=y
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_STORAGE=y

# Enable sound support
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_PCI=y
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0

# Enable PCI support
CONFIG_PCI=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_PERFORMANCE=y
CONFIG_PCI_MSI=y
CONFIG_PCIE_BUS_PERFORMANCE=y
CONFIG_PCI_QUIRKS=y

# Enable media support (only need this for the webcam to work)
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

# Enable input device support
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_RMI4_CORE=y
CONFIG_RMI4_I2C=y
CONFIG_RMI4_SMB=y
CONFIG_RMI4_F03=y
CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
CONFIG_RMI4_F3A=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_LIBPS2=y
# DMI scanning may be needed to detect some of systems components, excluding it 
# may result undetectable touchpad in my case the touchpad is detectable without it
# CONFIG_DMi 
# CONFIG_DMIID

# Enable EFI support
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFIVAR_FS=y

# Enable framebuffer support
CONFIG_FB=y
CONFIG_VGA_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FB_EFI=y
CONFIG_FB_DEVICE=y
# Enable legacy fbdev support
CONFIG_DRM_FBDEV_EMULATION=y
# Enable triple buffering
CONFIG_DRM_FBDEV_OVERALLOC=300

# Enable TTY support
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_UNIX98_PTYS=y

# Enable hardware random number generator support
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y

# Enable seccomp for better security
CONFIG_SECCOMP=y

# Enable AGP support
# CONFIG_AGP
# CONFIG_AGP_INTEL

# Enable DRM support
CONFIG_DRM=y
CONFIG_DRM_I915=y
CONFIG_DRM_I915_USERPTR=y

# Enable backlight support
CONFIG_BACKLIGHT_CLASS_DEVICE=y

# Enable ACPI WMI support
CONFIG_ACPI_WMI=y

# Enable Thinkpad ACPI support
CONFIG_THINKPAD_ACPI=y
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y

# If Intel RST is supported
# this will improve suspend to disk and resume support
CONFIG_INTEL_RST=y

# Disable frame pointer warnings
CONFIG_FRAME_WARN=0

# Disable I/O delay for better performance(?)
CONFIG_IO_DELAY_NONE=y

# Enable ORC unwinder for better performance
CONFIG_UNWINDER_ORC=y

# Disable crypto tests for smaller size
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y

# Enable printk timestamps for better, more readable logging
CONFIG_PRINTK_TIME=y

Everything else is excluded.

rofl0r commented 1 week ago

the config items i posted are 5.4 era. i cant help you anymore than what i stated above. try to disable all _FB_ items and enable the KMS ones. i hope you use ccache for the kernel build...

clbr commented 6 days ago

No problem with filing this issue here, this isn't exclusively TinyCore sw.

[h264 @ 0x11ecfc0]error while decoding MB 41 47, bytestream -47
[h264 @ 0x11ecfc0]concealing 94 DC, 94 AC, 94 MV errors in P frame

Your video has a lot of h264 corruption errors, so I'm not entirely sure what is from the corruption and what from the recording. But it seems to show that your shell took ~8s to show a prompt. While Xfbdev is certainly slow in comparison to Xvesa and accelerated drivers, you're right that this is greatly too slow, especially as you look like you're running on a more modern cpu.

I'm afraid I don't know what could be the main issue. The DRM fbdev emulation is considered terribly slow and bad in general, so that would be my first guess, but I think many TC users use the KMS FB with Xfbdev without such issues. Try profiling? Perf or oprofile's operf should do (with root rights and the options that enable full-system and kernel profiling).

LaithOsama commented 6 days ago

the config items i posted are 5.4 era. i cant help you anymore than what i stated above. try to disable all _FB_ items and enable the KMS ones. i hope you use ccache for the kernel build...

Any particular reason why you prefer older versions?

Anyway.. thank you mate, it was good to know the issue is in the kernel. I'm thinking about using your configuration in older version and see if it works.

LaithOsama commented 6 days ago

Hello!

While Xfbdev is certainly slow in comparison to Xvesa

I think I tried Xvesa before, I don't even remember if it launch.

Try profiling? Perf or oprofile's operf should do (with root rights and the options that enable full-system and kernel profiling).

I think this is the first time I've heard of this :D Any guide?

clbr commented 6 days ago

Oprofile's docs are quite good, haven't used perf much. In short, you first configure one or two sysctl options to enable wide profiling, then instead of "Xfbdev -args" you launch "operf -operfargs Xfbdev -args", run it for a bit, and using the tools then look at the results.

LaithOsama commented 6 days ago

This sounds interesting, but I’m skeptical that it will completely resolve the slowness.

It seems tinyx isn’t utilizing the GPU, as even with minimal tasks, the CPU usage spikes significantly. My last option is to try a generic kernel configuration, but I’ve started to lose interest due to other issues such as cursor glitches, limited touchpad functionality (only the click button works), and I don't know if it possible to add my native language keymap.

Thanks for your help guys, I really appreciate it.

LaithOsama commented 6 days ago

Update: I built a generic kernel using the sabotage configuration file, the issue still persists. I'm giving up... there's nothing else left to try.

rofl0r commented 6 days ago

maybe @aligrudi has some advice or tuned kernel config, as he's the author of some linux fb software.

Any particular reason why you prefer older versions?

i guess i just cant be bothered to try a new kernel and fix all the new issues that inevitably show up, when the one i use is still LTS-supported and works just fine.

LaithOsama commented 6 days ago

Yeah also I will revisit fbpad to check the performance, in Wayland (swc and velox), the performance is good despite the usage of software rendering.

i guess i just cant be bothered to try a new kernel and fix all the new issues that inevitably show up, when the one i use is still LTS-supported and works just fine.

Fair enough, I actually may do the same. However, have you tried tinyx and Xfbdev in sabotage kernel configuration? how was it?

Thanks for the reply.

LaithOsama commented 6 days ago

Maybe leaving this here will help

#!/bin/sh -e

export LDFLAGS="$LDFLAGS -static-pie"
export XSERVERCFLAGS_CFLAGS="-fPIE"
export XSERVERLIBS_LIBS="/usr/lib/*.a -lz -lfreetype -lpng16"

patch -p1 < 0001-Xext-INITARGS-does-not-specify-a-type.-change-to-int.patch

./configure \
  --prefix=/usr \
  --with-fontdir=/usr/share/fonts \
  --disable-xdmcp \
  --disable-xdm-auth-1

make
make DESTDIR="$1" install

chmod u+s "$1/usr/bin/Xfbdev"

# not compatible
rm -rf    "$1/usr/bin/Xvesa"

#install minimum requirement for bitmap fonts
mkdir -p "$1/usr/share/fonts/misc"
cp ./*.pcf.gz fonts.alias fonts.dir "$1/usr/share/fonts/misc"

This is the build script I used via kiss package manager.

LaithOsama commented 5 days ago

@rofl0r I disabled all the _FB_ options expect CONFIG_FB_DEVICE so Xfbdev can launch, and yet.. nothing changed! I think it's not a kernel issue anymore.. but what else it could be? God dammit I'm confused, this is first time in 3 years I get stuck like this. I guess I'm reopening this in case someone can help.

aligrudi commented 5 days ago

rofl0r @.***> wrote:

maybe @aligrudi has some advice or tuned kernel config, as he's the author of some linux fb software.

Any particular reason why you prefer older versions?

i guess i just cant be bothered to try a new kernel and fix all the new issues that inevitably show up, when the one i use is still LTS-supported and works just fine.

It is difficult to guess the cause of the slowness just based on the posted video.

The CPU usage seem to be above 40%: it may be due to capturing the screen. Does it remain so without any activity?

It takes some seconds until the shell prompt appears in opened terminals: it cannot be directly related to the performance of the framebuffer.

Moving terminals are not rendered fast: this may be related to the performance of the framebuffer. Because the contents of the windows need to be copied to the framebuffer after each movement, that is not unexpected. However, tinyx or Xfbdev may not be updating the framebuffer as efficiently as possible.

Ali
LaithOsama commented 4 days ago

Hello brother, I hope you're doing well.

It is difficult to guess the cause of the slowness just based on the posted video.

I agree but I couldn't find another way to express the issue, I wish there was a debugging option or another way.

The CPU usage seem to be above 40%: it may be due to capturing the screen. Does it remain so without any activity?

No, in idle it's 0% and as soon as I launch a terminal window (st) it jumps up to ~25%... in Wayland and Xorg it jumps to be ~1%.

Sometimes I press Mode - Return multiple times to open multiple terminal windows, in the third and beyond it takes several seconds to open!