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

Switch from floating point math to fixed-point math? #14

Open
Cloudperry opened this issue Apr 13, 2022 · 20 comments
Open

Switch from floating point math to fixed-point math? #14

Cloudperry opened this issue Apr 13, 2022 · 20 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@Cloudperry
Copy link

Cloudperry commented Apr 13, 2022

I have been using this driver for a couple of days and it has worked great most of the time. However yesterday my ethernet connection went down and I saw these messages in dmesg:

03:51:20.508781 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:20.510109 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:20.511441 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:20.511482 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:44.114114 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:44.248777 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:51:44.314114 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
03:57:05.190030 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
04:02:29.909939 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
04:20:37.199006 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Down
04:20:40.149674 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off
04:21:15.889665 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Down
04:21:18.828330 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off
04:21:24.666995 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Down
04:21:27.612361 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off
04:22:06.393655 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Down
04:22:09.322988 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off
04:22:22.310986 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Down
04:22:25.256313 roni-desktop kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off
04:23:11.152300 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all

After that I haven't seen these float traps getting triggered much, but I'm not fully confident in this driver not breaking shit randomly. It seems that there have been many attempts at fixing problems caused by using the FPU in a kernel module, but there are still some problems.

Maybe this driver could change the math operations to fixed-point arithmetic to get rid of all the problems that come with using the FPU in kernel code. An alternative driver that uses fixed-point would be fine too. Replacing floats with Q16.16 fixed point numbers (16-bits integer part inc. sign bit, 16-bits decimal part) would probably have enough precision for the purposes of this driver. There are good C libraries for this like libfixmath. That library should be suitable for kernel code as it is made for use on embedded systems. I might look into porting this driver to fixed-point math, when I have the time for it (my only C experience is customising a qmk keyboard).

If you are interested in the precision of fixed-point numbers I did play a bit with them and here are the results (using fpn):

0.1 -> 0.100006103
0.03 -> 0.029998779
0.034 -> 0.033996582
0.05 -> 0.050003051
1.5 -> 1.5
3 * 1.5 -> 4.5
1.8 -> 1.800003051
3 * 1.8 -> 5.400009155

Update: It seems that playing CS:GO triggers the float traps much more often than playing Overwatch. I haven't gotten any more ethernet disconnects for now.

@systemofapwne
Copy link
Owner

systemofapwne commented May 19, 2022

This sounds very interesting. TBH, I always hated the FPU in the kernel workarounds I had to figure out the hard way here (messing up my BTRFS volumes multiple times).

To elaborate a bit regarding the float traps:

  • The code correctly uses a check to not use FPU when not usable
    if(!irq_fpu_usable()){
  • However, for reasons unknown, FPU sometimes gets screwed up such that FP operations become messy. I check for this here
    if(!((int) delta_x == *x && (int) delta_y == *y && (int) delta_whl == *wheel)){
    which is (so far I can tell over the year of usage) without any severe consequences of data corruptions or crashes. This is the first float trap, which can be triggered from time to time.
  • At the end of the acceleration code, there is one more float trap, making sure, that FPU is still working as expected
    if(*x == -2147483648 || *y == -2147483648 || *wheel == -2147483648){
    I did not expect this ever to be triggered but it looks like, for you, it does.

So I really should consider migrating to fixed point arithmetic. Thank you for also providing a C library here. This really might speed up things. I will give it a look, if I find some time this weekend (I just recently moved and didn't check github).

@systemofapwne systemofapwne self-assigned this May 19, 2022
@systemofapwne systemofapwne added bug Something isn't working enhancement New feature or request labels May 19, 2022
@Cloudperry
Copy link
Author

Thanks for the reply and for seriously considering this change. I have had 2 ethernet disconnects after creating this issue (it goes completely down and I have to restart). I have github email notifications on and I can do some testing, if there is something to test about a fixed-point version of Leetmouse.

There is a wiki page on the old repository of that library, which might be helpful. If report counts multiplied by acceleration get too high for Q16.16 numbers, there are also libraries that implement Q32.32 fixed point like fixedptc. I reckon that shouldn't happen though, because Q16.16 numbers go from -32768,999985 to 32767,999985.

@systemofapwne
Copy link
Owner

libfixmath sounds absolutely fine for me right now. It is also well documented and the addressable number range should be sufficiently big. Most of the times, the single events received from a mouse movement are on the order of one to two digits long. Acceleration might boost this up though. Yet I doubt, that anyone would prefer a setting, where one movement-tick/event is scaled up to 32768 (5 digits). And if someone tries that anyway, I will simply implement a hard-cap here within the precision of Q16.16.
Right now I just quickly integrated the build process of libfixmath for this project locally on my machine. Once this works reliable across all build targets (manual compile & dkms basically), I will start migrating the codebase to libfixmath. That will be the least amount of work I guess.

@systemofapwne
Copy link
Owner

systemofapwne commented May 26, 2022

Little update here: I integrated libfixmath into the build-process. However I just discovered, that libfixmath seems to utilize cstd headers. Thats a big no-no for kernel-space (there is no cstd). However it seems like, that this is only about data-type definitions (so far I can see it). So libfixmath probably just needs a patch to use the kernel-header's typedefs. Or maybe it does not matter at all, since libfixmath is statically compiled and might not depend on libc at all. Lets see.
I might continue with that somewhere around next week, after I'm back home.

@Cloudperry
Copy link
Author

Cloudperry commented Jun 2, 2022

I have no idea why, but it seems that I don't get any of the float trap errors anymore. I have changed to a kernel package compiled with x86-64-v3, changed some leetmouse settings and updated a bunch of packages.

Also I was googling a bit after seeing your last comment and I saw a version of fixedptc which had some useful changes for Linux kernel use. The last commit in that repo might be very close to what you need to change about libfixmath.

Edit: Nevermind, I am still getting float trap errors. I guess I just didn't get them for a few hours while gaming yesterday.

@systemofapwne
Copy link
Owner

systemofapwne commented Jun 5, 2022

I have no idea why, but it seems that I don't get any of the float trap errors anymore. I have changed to a kernel package compiled with x86-64-v3, changed some leetmouse settings and updated a bunch of packages.

Also I was googling a bit after seeing your last comment and I saw a version of fixedptc which had some useful changes for Linux kernel use. The last commit in that repo might be very close to what you need to change about libfixmath.

Edit: Nevermind, I am still getting float trap errors. I guess I just didn't get them for a few hours while gaming yesterday.

My plan was forking libfixmath, apply similar ifedefs as here
https://github.com/cxw42/fixedptc-fork/blob/60e5d3a4ea81be72684a03b5563ee455060bf979/fixedptc.h#L135
and apply for a PR. Until then, this repo here will use my forked libfixmath.
ETA on this and the next migration steps towards integration: Probably the next few days or so. I am still a bit busy to get things together in my new flat.

@serossi
Copy link

serossi commented Jun 20, 2022

just wanna trowe something in

iam using a hefty jumpcurve (jump to ~5000dpi after offset) and noticed i get those float traps mostly if not only when i hit my jump curve) so i suspected to many inputs

raising the buffers to 512 fixed the issue for me

for reference. mouse set to 6400, prescaler to 1360, jumpcurve via cap to 3.5f, acceleration 100 (lel)

@systemofapwne
Copy link
Owner

That is an interesting observation. So far, the floattraps have been triggered, when a certain usermode process used the FPU in some special way (some videos triggered that for me a lot) while this kernel module also wanted to use it, even though it was marked "free to use for the kernel".
I already made some tests and tinkering around with the fixedfloat variant, so "float traps" will not be necessary anymore in the future.

@systemofapwne
Copy link
Owner

systemofapwne commented Jun 22, 2022

I have no idea why, but it seems that I don't get any of the float trap errors anymore. I have changed to a kernel package compiled with x86-64-v3, changed some leetmouse settings and updated a bunch of packages.
Also I was googling a bit after seeing your last comment and I saw a version of fixedptc which had some useful changes for Linux kernel use. The last commit in that repo might be very close to what you need to change about libfixmath.
Edit: Nevermind, I am still getting float trap errors. I guess I just didn't get them for a few hours while gaming yesterday.

My plan was forking libfixmath, apply similar ifedefs as here https://github.com/cxw42/fixedptc-fork/blob/60e5d3a4ea81be72684a03b5563ee455060bf979/fixedptc.h#L135 and apply for a PR. Until then, this repo here will use my forked libfixmath. ETA on this and the next migration steps towards integration: Probably the next few days or so. I am still a bit busy to get things together in my new flat.

I just added a PR for my modifications for the linux kernel module support to libfixmath: PetteriAimonen/libfixmath#37. Latest changes for the build process of leetmouse with this library are in the fixedpoint branch. I think I almost got everything now together. This was kind of painfull, but anyhow worth the weight.
Up next: Rewriting the accel.c file to use libfixmath. That should be quite easy now.

Edit: My PR to libfixmath has been already merged, woohoo. That was fast.

@nullprop
Copy link

nullprop commented Sep 28, 2022

Been testing a build from fixedpoint branch 3a4b398 and so far it's been working well on Ubuntu 22.04. Mouse lag & float-traps no longer an issue while watching Youtube videos for example. Edit: Nevermind, didn't realise accel.c wasn't using libfixmath yet. Regardless rest of the driver works fine, ignoring float-traps with some videos.

One hiccup I ran into is that the removal of ccflags-y += -mhard-float from /driver/Makefile in commits df93b17 & 94ef835 breaks make for me:

:: Compiling leetmouse kernel module
========================================
cp -n /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/config.sample.h /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/config.h
cd /var/lib/dkms/leetmouse-driver/0.9.1/build/driver && make depend
make[1]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver'
mkdir -p libfixmath/build
cd libfixmath/build && cmake -DCMAKE_C_FLAGS="-DFIXMATH_NO_CTYPE" .. && make libfixmath
-- The CXX compiler identification is GNU 11.2.0
-- The C compiler identification is GNU 11.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build
make[2]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[3]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[4]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[5]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[5]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[5]: Entering directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
[  0%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16.c.o
[ 25%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16_exp.c.o
[ 25%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16_fft.c.o
[ 50%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16_sqrt.c.o
[ 50%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16_str.c.o
[ 75%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fix16_trig.c.o
[ 75%] Building C object CMakeFiles/libfixmath.dir/libfixmath/fract32.c.o
[100%] Building C object CMakeFiles/libfixmath.dir/libfixmath/uint32.c.o
[100%] Linking C static library liblibfixmath.a
make[5]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
[100%] Built target libfixmath
make[4]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[3]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
make[2]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/libfixmath/build'
cd libfixmath/build && ar x liblibfixmath.a
cd libfixmath/build && ld -r *.c.o -o libfixmath.o_shipped
touch libfixmath/build/.libfixmath.o.cmd
make[1]: Leaving directory '/var/lib/dkms/leetmouse-driver/0.9.1/build/driver'
make -C /lib/modules/5.15.0-48-generic/build M=/var/lib/dkms/leetmouse-driver/0.9.1/build/driver modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-48-generic'
  CC [M]  /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/usbmouse.o
  CC [M]  /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/accel.o
In file included from /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/accel.c:5:
/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/float.h: In function ‘updata_params’:
/var/lib/dkms/leetmouse-driver/0.9.1/build/driver/float.h:40:46: error: SSE register return with SSE disabled
   40 |             for(j = 1; j < pos; j++) *result *= 10.0f;
      |                                              ^~
make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/leetmouse-driver/0.9.1/build/driver/accel.o] Error 1
make[1]: *** [Makefile:1884: /var/lib/dkms/leetmouse-driver/0.9.1/build/driver] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-48-generic'
make: *** [Makefile:29: driver] Error 2

@systemofapwne
Copy link
Owner

systemofapwne commented Sep 28, 2022

Hey, I was extremely "busy" the past months with holidays, conferences and work. Yes, the current libfixmath branch does not implement any libfixmath to leetmouse yet. It is currently just integrating compilation of the lib to the project and needs some more fine-tuning for linking against it. I hope, I find some time in the near future.

For me, this feature is a fundamental important change.
Especially where you mention YouTube videos here: I thought, I fixed most video playback issues with the float-traps, but apparently I did not. Especially this makes this feature so fundamental important.

@Cloudperry
Copy link
Author

Cloudperry commented Feb 10, 2023

I tried making a port of Leetmouse to fixed-point math and it works and sort of feels like the acceleration is done correctly. However its a very hacky version and I think I wouldn't be able to fix the remaining issues with it (with my currently non existent C skills). It doesn't update the parameters at runtime and worst of all crashes the kernel after about 10 minutes of usage with no useful logs. Also the mouse wheel scaling is not implemented, but that I could have added back easily.

I thought I should still post this version, if it helps when starting to implement the change to fixed-point. I made the changes on top of the fixed point branch and changed accel.c and config.h.

accel.c
// SPDX-License-Identifier: GPL-2.0-or-later

#include "accel.h"
#include "libfixmath/libfixmath/fix16.h"
#include "util.h"
#include "config.h"
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/time.h>
#include <linux/string.h>   //strlen
#include <linux/init.h>
#include "libfixmath/libfixmath/fixmath.h"

//Needed for kernel_fpu_begin/end
#include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
    //Pre Kernel 5.0.0
    #include <asm/i387.h>
#else
    #include <asm/fpu/api.h>
#endif

MODULE_AUTHOR("Christopher Williams <chilliams (at) gmail (dot) com>"); //Original idea of this module
MODULE_AUTHOR("Klaus Zipfel <klaus (at) zipfel (dot) family>");         //Current maintainer

//Convenient helper for float based parameters, which are passed via a string to this module (must be individually parsed via atof() - available in util.c)
#define PARAM_F(param, default, default_str, desc)              \
    fix16_t g_##param = default;                                \
    static char* g_param_##param = default_str;                 \
    module_param_named(param, g_param_##param, charp, 0644);    \
    MODULE_PARM_DESC(param, desc);

#define PARAM(param, default, desc)                             \
    static char g_##param = default;                            \
    module_param_named(param, g_##param, byte, 0644);           \
    MODULE_PARM_DESC(param, desc);

// ########## Kernel module parameters

// Simple module parameters (instant update)
PARAM(no_bind,          0,              "This will disable binding to this driver via 'leetmouse_bind' by udev.");
PARAM(update,           0,              "Triggers an update of the acceleration parameters below");

//PARAM(AccelMode,        MODE,           "Acceleration method: 0 power law, 1: saturation, 2: log"); //Not yet implemented

// Acceleration parameters (type pchar. Converted to float via "updata_params" triggered by /sys/module/leetmouse/parameters/update)
PARAM_F(PreScaleX,      PRE_SCALE_X, PRE_SCALE_X_STR,    "Prescale X-Axis before applying acceleration. Fixed point V420 in use.");
PARAM_F(PreScaleY,      PRE_SCALE_Y, PRE_SCALE_Y_STR,    "Prescale Y-Axis before applying acceleration.");
PARAM_F(SpeedCap,       SPEED_CAP, SPEED_CAP_STR,      "Limit the maximum pointer speed before applying acceleration.");
PARAM_F(Sensitivity,    SENSITIVITY, SENSITIVITY_STR,    "Mouse base sensitivity.");
PARAM_F(Acceleration,   ACCELERATION, ACCELERATION_STR,   "Mouse acceleration sensitivity.");
PARAM_F(SensitivityCap, SENS_CAP, SENS_CAP_STR,       "Cap maximum sensitivity.");
PARAM_F(Offset,         OFFSET, OFFSET_STR,         "Mouse base sensitivity.");
//PARAM_F(Power,          XXX,            "");           //Not yet implemented
PARAM_F(PostScaleX,     POST_SCALE_X, POST_SCALE_X_STR,   "Postscale X-Axis after applying acceleration.");
PARAM_F(PostScaleY,     POST_SCALE_Y, POST_SCALE_Y_STR,   "Postscale Y-Axis after applying acceleration.");
//PARAM_F(AngleAdjustment,XXX,            "");           //Not yet implemented. Douptful, if I will ever add it - Not very useful and needs me to implement trigonometric functions from scratch in C.
//PARAM_F(AngleSnapping,  XXX,            "");           //Not yet implemented. Douptful, if I will ever add it - Not very useful and needs me to implement trigonometric functions from scratch in C.
PARAM_F(ScrollsPerTick, SCROLLS_PER_TICK, SCROLLS_PER_TICK_STR, "Amount of lines to scroll per scroll-wheel tick.");

void update_param(const char *str, fix16_t *result) {
    *result = fix16_from_str(str);
}

// Updates the acceleration parameters. This is purposely done with a delay!
// First, to not hammer too much the logic in "accelerate()", which is called VERY OFTEN!
// Second, to fight possible cheating. However, this can be OFC changed, since we are OSS...
#define PARAM_UPDATE(param) update_param(g_param_##param, &g_##param);

static ktime_t g_next_update = 0;
INLINE void updata_params(ktime_t now)
{
    if(!g_update) return;
    if(now < g_next_update) return;
    g_update = 0;
    g_next_update = now + 1000000000ll;    //Next update is allowed after 1s of delay

    PARAM_UPDATE(PreScaleX);
    PARAM_UPDATE(PreScaleY);
    PARAM_UPDATE(SpeedCap);
    PARAM_UPDATE(Sensitivity);
    PARAM_UPDATE(Acceleration);
    PARAM_UPDATE(SensitivityCap);
    PARAM_UPDATE(Offset);
    PARAM_UPDATE(PostScaleX);
    PARAM_UPDATE(PostScaleY);
    PARAM_UPDATE(ScrollsPerTick);
}

// ########## Acceleration code

// Acceleration happens here
int accelerate(int *x, int *y, int *wheel)
{
    fix16_t delta_x, delta_y, ms, rate, accel_sens;
    static fix16_t carry_x = F16(0.0);
    static fix16_t carry_y = F16(0.0);
    static fix16_t last_ms = F16(1.0);
    static ktime_t last;
    ktime_t now;
    int status = 0;

    accel_sens = g_Sensitivity;

    delta_x = fix16_from_int(*x);
    delta_y = fix16_from_int(*y);

    //Calculate frametime
    now = ktime_get();
    ms = fix16_div(fix16_from_int(now - last), fix16_from_int(1000*1000));
    last = now;
    if(ms < fix16_one) ms = last_ms;        //Sometimes, urbs appear bunched -> Beyond µs resolution so the timing reading is plain wrong. Fallback to last known valid frametime
    if(ms > F16(100.0)) ms = F16(100.0);    //Original InterAccel has 200 here. RawAccel rounds to 100. So do we.
    last_ms = ms;

    //Update acceleration parameters periodically
    updata_params(now);

    //Prescale
    delta_x = fix16_mul(delta_x, g_PreScaleX);
    delta_y = fix16_mul(delta_y, g_PreScaleY);

    //Calculate velocity (one step before rate, which divides rate by the last frametime)
    rate = fix16_add(fix16_mul(delta_x, delta_x), fix16_mul(delta_y, delta_y));
    rate = fix16_sqrt(rate);

    //Apply speedcap
    if(g_SpeedCap != F16(0.0)) {
        if (rate >= g_SpeedCap) {
            delta_x = fix16_mul(delta_x, fix16_div(g_SpeedCap, rate));
            delta_y = fix16_mul(delta_y, fix16_div(g_SpeedCap, rate));
            rate = g_SpeedCap;
        }
    }

    //Calculate rate from travelled overall distance and add possible rate offsets
    rate = fix16_div(rate, ms);
    rate = fix16_sub(rate, g_Offset);

    //TODO: Add different acceleration styles
    //Apply linear acceleration on the sensitivity if applicable and limit maximum value
    if(rate > F16(0.0)){
        rate = fix16_mul(rate, g_Acceleration);
        accel_sens = fix16_add(accel_sens, rate);
    }
    if(g_SensitivityCap > F16(0.0) && accel_sens >= g_SensitivityCap){
        accel_sens = g_SensitivityCap;
    }

    //Actually apply accelerated sensitivity, allow post-scaling and apply carry from previous round
    accel_sens = fix16_div(accel_sens, g_Sensitivity);
    //printk("final accel sens=%d", fix16_to_int(accel_sens));
    //printk("applying accel");
    delta_x = fix16_mul(delta_x, accel_sens);
    delta_y = fix16_mul(delta_y, accel_sens);
    delta_x = fix16_mul(delta_x, g_PostScaleX);
    delta_y = fix16_mul(delta_y, g_PostScaleY);
    delta_x = fix16_add(delta_x, carry_x); 
    delta_y = fix16_add(delta_y, carry_y); 

    *x = fix16_to_int(delta_x);
    *y = fix16_to_int(delta_y);
    *wheel = *wheel;

    //Save carry for next round
    carry_x = fix16_sub(delta_x, fix16_from_int(*x));
    carry_y = fix16_sub(delta_y, fix16_from_int(*y));

    return status;
}
Example config.h
#include "libfixmath/libfixmath/fixmath.h"
// Maximum number of packets allowed to be sent from the mouse at once. Linux's default value is 8, which at
// least causes EOVERFLOW for my mouse (SteelSeries Rival 600). Increase this, if 'dmesg -w' tells you to!
#define BUFFER_SIZE 8

/*
 * This should be your desired acceleration. It needs to end with an f.
 * For example, setting this to "0.1f" should be equal to
 * cl_mouseaccel 0.1 in Quake.
 */

// Changes behaviour of the scroll-wheel. Default is 3.0f
#define SCROLLS_PER_TICK F16(3.0)
#define SCROLLS_PER_TICK_STR "3.0"

// Emulate Windows' "Enhanced Pointer Precision" for my mouse (1000 Hz) by approximating it with a linear accel
#define SENSITIVITY F16(1.0)
#define SENSITIVITY_STR "1.0"
#define ACCELERATION F16(0.045)
#define ACCELERATION_STR "0.045"
#define SENS_CAP F16(3.0)
#define SENS_CAP_STR "3.0"
#define OFFSET F16(0.0)
#define OFFSET_STR "0.0"
#define POST_SCALE_X F16(1.0)
#define POST_SCALE_X_STR "1.0"
#define POST_SCALE_Y F16(1.0)
#define POST_SCALE_Y_STR "1.0"
#define SPEED_CAP F16(0.0)
#define SPEED_CAP_STR "0.0"

// Prescaler for different DPI values. 1.0f at 400 DPI. To adjust it for <your_DPI>, calculate 400/your_DPI

// Generic @ 400 DPI
#define PRE_SCALE_X F16(1.0)
#define PRE_SCALE_X_STR "1.0"
#define PRE_SCALE_Y F16(1.0)
#define PRE_SCALE_Y_STR "1.0"

// Steelseries Rival 110 @ 7200 DPI
//#define PRE_SCALE_X 0.0555555f
//define PRE_SCALE_Y 0.0555555f

// Steelseries Rival 600/650 @ 12000 DPI
//#define PRE_SCALE_X 0.0333333f
//#define PRE_SCALE_Y 0.0333333f

There seem to be some parts of libfixmath that are not usable in the kernel. For example I tried using fix16_to_string for debug prints, but using that always made the kernel insta crash. I think I used it correctly, because I checked libfixmath tests and it used that function the same way. Also I didn't know if I could just compare fixed-point numbers with the normal operators, but the acceleration code seems to work with normal comparisons. The change to add a string representation of the params in config.h was to make the params look correct in sysfs for example. However that was just a hack, because I don't know how to convert fixed-point to string while keeping the string const.

Edit: Changed code to use spaces instead of tabs everywhere.

@systemofapwne
Copy link
Owner

Thank you. I surely should finally invest some more time into leetmouse again :/ I feel sorry for letting so many people let down, just because "it simply works for me 99%" so I tended to switch to other projects.

If you ever find a 100% working method, feel free to file a PR. If not, I should be constantly nagged by people like you, to work on this project again, until I really do :)

@Cloudperry
Copy link
Author

Cloudperry commented Mar 1, 2023

Not sure if its caused by Leetmouse or not, but I was just moving Apex Legends to my Windows partition and then my desktop basically froze. Couldn't even switch to a different tty. I was going to check if I was hit by this Apex banwave that has been affecting Linux users.

Kernel logs since mounting the Windows partition
maalis 01 13:12:11 roni-desktop kernel: ntfs3: Max link count 4000
maalis 01 13:12:11 roni-desktop kernel: ntfs3: Enabled Linux POSIX ACLs support
maalis 01 13:12:11 roni-desktop kernel: ntfs3: Read-only LZX/Xpress compression included
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:29 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:17:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:14 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:14 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:15 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:15 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:15 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:15 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:18 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:19 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:19 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:19 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:19 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:21 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:22 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:25 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:26 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:27 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:30 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:31 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:32 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:33 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:22:33 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:33 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:56 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:22:56 roni-desktop kernel: INFO: task kworker/u32:0:9 blocked for more than 122 seconds.
maalis 01 13:22:56 roni-desktop kernel:       Tainted: G           OE      6.2.1-1-cachyos #1
maalis 01 13:22:56 roni-desktop kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
maalis 01 13:22:56 roni-desktop kernel: task:kworker/u32:0   state:D stack:0     pid:9     ppid:2      flags:0x00004000
maalis 01 13:22:56 roni-desktop kernel: Workqueue: writeback wb_workfn (flush-8:0)
maalis 01 13:22:56 roni-desktop kernel: Call Trace:
maalis 01 13:22:56 roni-desktop kernel:  <TASK>
maalis 01 13:22:56 roni-desktop kernel:  __schedule+0xc1c/0x14a0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_cmp_fnames+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  schedule+0x5a/0xd0
maalis 01 13:22:56 roni-desktop kernel:  find_inode+0x144/0x1a0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_wake_bit_function+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ilookup5+0x74/0x110
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_set_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  iget5_locked+0x26/0xe0
maalis 01 13:22:56 roni-desktop kernel:  ntfs_iget5+0x44/0xe60 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? ntfs_write_bh+0x199/0x210 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ni_write_inode+0x9d0/0x10c0 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? do_writepages+0x1e6/0x200
maalis 01 13:22:56 roni-desktop kernel:  __writeback_single_inode+0x2ac/0x360
maalis 01 13:22:56 roni-desktop kernel:  writeback_sb_inodes+0x20e/0x540
maalis 01 13:22:56 roni-desktop kernel:  __writeback_inodes_wb+0x4c/0xf0
maalis 01 13:22:56 roni-desktop kernel:  wb_writeback+0x2e2/0x390
maalis 01 13:22:56 roni-desktop kernel:  wb_workfn+0x395/0x560
maalis 01 13:22:56 roni-desktop kernel:  ? add_timer+0x1c0/0x280
maalis 01 13:22:56 roni-desktop kernel:  process_one_work+0x258/0x410
maalis 01 13:22:56 roni-desktop kernel:  worker_thread+0x51/0x4d0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_worker_thread+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  kthread+0xda/0x100
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_kthread+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  ret_from_fork+0x2c/0x50
maalis 01 13:22:56 roni-desktop kernel:  </TASK>
maalis 01 13:22:56 roni-desktop kernel: INFO: task kswapd0:158 blocked for more than 122 seconds.
maalis 01 13:22:56 roni-desktop kernel:       Tainted: G           OE      6.2.1-1-cachyos #1
maalis 01 13:22:56 roni-desktop kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
maalis 01 13:22:56 roni-desktop kernel: task:kswapd0         state:D stack:0     pid:158   ppid:2      flags:0x00004000
maalis 01 13:22:56 roni-desktop kernel: Call Trace:
maalis 01 13:22:56 roni-desktop kernel:  <TASK>
maalis 01 13:22:56 roni-desktop kernel:  __schedule+0xc1c/0x14a0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_cmp_fnames+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  schedule+0x5a/0xd0
maalis 01 13:22:56 roni-desktop kernel:  find_inode+0x144/0x1a0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_wake_bit_function+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ilookup5+0x74/0x110
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_test_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_ntfs_set_inode+0x10/0x10 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  iget5_locked+0x26/0xe0
maalis 01 13:22:56 roni-desktop kernel:  ntfs_iget5+0x44/0xe60 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ? ntfs_write_bh+0x199/0x210 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ni_write_inode+0x9d0/0x10c0 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  ntfs_evict_inode+0x52/0x60 [ntfs3 12fd472122f7a495d70bd1461eff1c844df996da]
maalis 01 13:22:56 roni-desktop kernel:  evict+0xd1/0x2a0
maalis 01 13:22:56 roni-desktop kernel:  prune_icache_sb+0x8e/0xd0
maalis 01 13:22:56 roni-desktop kernel:  super_cache_scan+0x166/0x1f0
maalis 01 13:22:56 roni-desktop kernel:  do_shrink_slab+0x134/0x2e0
maalis 01 13:22:56 roni-desktop kernel:  shrink_slab_memcg+0x115/0x1e0
maalis 01 13:22:56 roni-desktop kernel:  shrink_one+0x267/0x270
maalis 01 13:22:56 roni-desktop kernel:  ? lru_add_drain_cpu+0x584/0x670
maalis 01 13:22:56 roni-desktop kernel:  ? psi_task_switch+0x12e/0x2c0
maalis 01 13:22:56 roni-desktop kernel:  shrink_node+0xa29/0xd80
maalis 01 13:22:56 roni-desktop kernel:  ? schedule_timeout+0x2a9/0x380
maalis 01 13:22:56 roni-desktop kernel:  kswapd+0x721/0xf60
maalis 01 13:22:56 roni-desktop kernel:  ? psi_task_switch+0x12e/0x2c0
maalis 01 13:22:56 roni-desktop kernel:  ? __switch_to_asm+0x3a/0x80
maalis 01 13:22:56 roni-desktop kernel:  ? finish_task_switch.isra.0+0x95/0x2e0
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_kswapd+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  kthread+0xda/0x100
maalis 01 13:22:56 roni-desktop kernel:  ? __pfx_kthread+0x10/0x10
maalis 01 13:22:56 roni-desktop kernel:  ret_from_fork+0x2c/0x50
maalis 01 13:22:56 roni-desktop kernel:  </TASK>
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:08 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:09 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:10 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:11 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: Final float-trap triggered. This should NEVER happen!
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:12 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all
maalis 01 13:23:13 roni-desktop kernel: LEETMOUSE: First float-trap triggered. Should very very rarely happen, if at all

Edit: My Windows partition survived with no damage. There were a few file entries in the Apex directory for files that didn't exist.

@Cloudperry
Copy link
Author

Thank you. I surely should finally invest some more time into leetmouse again :/ I feel sorry for letting so many people let down, just because "it simply works for me 99%" so I tended to switch to other projects.

It works for me 99% of the time as well. I just get weird problems like once a month or every 2 months and I have posted basically all of them here.

If you ever find a 100% working method, feel free to file a PR. If not, I should be constantly nagged by people like you, to work on this project again, until I really do :)

If you start working on it, my code should actually be a decent starting point. Its almost a 1 to 1 conversion of every line in the original version with the biggest difference being that I completely removed the buffer (kept the carry). It doesn't make sense with fixed-point because there isn't a need to wait for math operations to be available. I'm not 100% sure, but the crash I mentioned earlier happens only with a GCC compiled kernel (not with LLVM).

@systemofapwne
Copy link
Owner

systemofapwne commented Mar 1, 2023

Thanks.
In fact, I already played on it (libfixmath) some months ago but shifted it aside, after other, more urgent projects emerged and some unclear situations arised in Leetmouse (E.g. how to properly link a binary-lib, compiled in usermode, against a kernel module and making it 100% libc free with no side-effects such as "destroying a partition" for example ;).

@systemofapwne
Copy link
Owner

Not sure if its caused by Leetmouse or not, but I was just moving Apex Legends to my Windows partition and then my desktop basically froze. Couldn't even switch to a different tty. I was going to check if I was hit by this Apex banwave that has been affecting Linux users.

Kernel logs since mounting the Windows partition
Edit: My Windows partition survived with no damage. There were a few file entries in the Apex directory for files that didn't exist.

This really suggestes that the ntfs-driver you used (the "new" ntfs3 enhanced version from paragon I guess) is heavily relying on the FPU.

@Cloudperry
Copy link
Author

Cloudperry commented Mar 4, 2023

I have had one annoying mouse slowdown bug for a month. It only happens with Apex legends. Today I realized that its probably caused by Leetmouse and I wanted to finally get it fixed.

I now have a version of Leetmouse that works without crashing the kernel and all the current features are there except for updating parameters at runtime. Unfortunately I had to switch from Libfixmath to this single header library. Libfixmath was full of footguns (e.g. functions that would crash the kernel) and I had problems with numbers overflowing with it.

I have created a PR of this port here. I will write a description for the PR probably tomorrow. Basically all thats left for a proper port is to handle updating the parameters at runtime and converting the default parameters (from config.h) to string. Also Libfixmath needs to be removed from the build system. Fixedptc.h should be about as good as Libfixmath for the future. It has sin, cos, tan and probably everything that Leetmouse will need for adding features. Only disadvantage that I know of compared to Libfixmath is that it doesn't use lookup tables for trig functions. Also from what I read of its code I saw some comments about the trig functions having very rough precision.

@systemofapwne
Copy link
Owner

I am interested to see your modifications, even though I am still in favor of libfixmath for its modularity, self-tests and more math function.

What were your specific problems with libfixmath, that made your kernel hang? Which functions specifically? I guess those relying on libc behavior, that are not in the kernel? Or str to float conversions? I thought, my PR some time ago fixed these issues. Seems like, I was wrong. I would be interested to see specific code, that generates these issues, if you still have this laying around somewhere :)

Btw: Right now, many of my recent side-projects come close to finish (hopefully), so this might be a good point to find some time for leetmouse again. I know, I said this a lot already in the past...

@Cloudperry
Copy link
Author

Cloudperry commented Mar 4, 2023

When testing the last accel.c version I posted here, it would crash GCC compiled kernels, but not LLVM compiled ones. It didn't happen instantly, but within a few minutes of normal use. That version of accel.c doesn't even use much of libfixmath. Just basic add, subtract, divide and multiply. Also when I tried adding debug prints to it, it would crash instantly when trying to print. The debug prints used libfixmath's fix16 to string conversion functions exactly the same way as in libfixmath tests.

My new PR is exactly the same as the previous version in terms of fixed point usage. I just replaced libfixmath functions with fixedptc. Still it is 100% stable and the accel feels exactly the same as the old float based version. Also with my previous libfixmath based port the mouse would sometimes jump 32767 units from arithmetic overflow, but that is gone in the fixedptc based version. I tried to fix that overflow in my libfixmath version by setting FIXMATH_NO_OVERFLOW, but that made it even crashier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants