Xephon
7 September 2023 09:05
81
Has anyone deduced the difference?
It’s not an easy task. Kernel config files contain ~ 11k parameters. Manjaro kernel has about 1200 different parameters compared to FerenOS kernel.
Description of parameters is very short and doesn’t tell you much unless you’re Linus Torvalds. It’s not like “change this parameter and get +500% writing speed”. It’s all about buffers, buses, events, devices, trees, maps, tables and so on.
So in order to find necessary parameters one will have to change n
parametes, recompile manjaro kernel and perform a writing speed test. In a very optimistic scenario where n=1
one will need to do ~1200 tests. If n=2
- 1200^2 ~1.4 million tests, n=3
- 1200^3 ~ 1.7 billion tests…
Those tests could literally take years to perform. I don’t think someone is gonna be willing to spend so much time to find the culprits.
1 Like
Surely the entire 1200 doesnt pertain to USB read/write?
1.7 billion tests would be like dialing every phone number starting with all zeros and changing 1 digit at a time. I understand not everyone is fluent in low level coding like assembly, and some commands and parameters are probably esoteric without understanding the hardware and protocols themselves, but surely it can be deduced much easier by simple comparisons between OS’s at obvious points. I mean, FerenOS did it somehow and that somehow can be replicated.
Happy hunting - extracted when booted the latest stable Feren ISO
Feren OS: sysctl --all
If we pull the data and run them through grep - ignoring all that begins with dev.
and net.
curl http://ix.io/4FBr > feren.txt && grep -v -e 'net\.' -v -e 'dev.'
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
fs.aio-max-nr = 65536
fs.aio-nr = 0
fs.binfmt_misc.status = enabled
fs.dentry-state = 191309 138363 45 0 103286 0
fs.dir-notify-enable = 1
fs.epoll.max_user_watches = 3595219
fs.fanotify.max_queued_events = 16384
fs.fanotify.max_user_groups = 128
fs.fanotify.max_user_marks = 130838
fs.file-max = 9223372036854775807
fs.file-nr = 9248 0 9223372036854775807
fs.inode-nr = 83156 0
fs.inode-state = 83156 0 0 0 0 0 0
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 123050
fs.lease-break-time = 45
fs.leases-enable = 1
fs.mount-max = 100000
fs.mqueue.msg_default = 10
fs.mqueue.msg_max = 10
fs.mqueue.msgsize_default = 8192
fs.mqueue.msgsize_max = 8192
fs.mqueue.queues_max = 256
fs.nr_open = 1048576
fs.overflowgid = 65534
fs.overflowuid = 65534
fs.pipe-max-size = 1048576
fs.pipe-user-pages-hard = 0
fs.pipe-user-pages-soft = 16384
fs.quota.allocated_dquots = 0
fs.quota.cache_hits = 0
fs.quota.drops = 0
fs.quota.free_dquots = 0
fs.quota.lookups = 0
fs.quota.reads = 0
fs.quota.syncs = 0
fs.quota.writes = 0
fs.suid_dumpable = 0
fs.verity.require_signatures = 0
kernel.acct = 4 2 30
kernel.acpi_video_flags = 0
kernel.auto_msgmni = 0
kernel.bootloader_type = 114
kernel.bootloader_version = 2
kernel.bpf_stats_enabled = 0
kernel.cap_last_cap = 40
kernel.core_pattern = |/lib/systemd/systemd-coredump %P %u %g %s %t 9223372036854775808 %h
kernel.core_pipe_limit = 0
kernel.core_uses_pid = 0
kernel.ctrl-alt-del = 0
kernel.dmesg_restrict = 0
kernel.domainname = (none)
kernel.firmware_config.force_sysfs_fallback = 0
kernel.firmware_config.ignore_sysfs_fallback = 0
kernel.ftrace_dump_on_oops = 0
kernel.ftrace_enabled = 1
kernel.hardlockup_all_cpu_backtrace = 0
kernel.hardlockup_panic = 0
kernel.hostname = feren
kernel.hotplug =
kernel.hung_task_all_cpu_backtrace = 0
kernel.hung_task_check_count = 4194304
kernel.hung_task_check_interval_secs = 0
kernel.hung_task_panic = 0
kernel.hung_task_timeout_secs = 120
kernel.hung_task_warnings = 10
kernel.io_delay_type = 1
kernel.kexec_load_disabled = 0
kernel.keys.gc_delay = 300
kernel.keys.maxbytes = 20000
kernel.keys.maxkeys = 200
kernel.keys.persistent_keyring_expiry = 259200
kernel.keys.root_maxbytes = 25000000
kernel.keys.root_maxkeys = 1000000
kernel.kptr_restrict = 1
kernel.max_lock_depth = 1024
kernel.max_rcu_stall_to_panic = 0
kernel.modprobe = /sbin/modprobe
kernel.modules_disabled = 0
kernel.msg_next_id = -1
kernel.msgmax = 8192
kernel.msgmnb = 16384
kernel.msgmni = 32000
kernel.ngroups_max = 65536
kernel.nmi_watchdog = 0
kernel.ns_last_pid = 4734
kernel.numa_balancing = 0
kernel.oops_all_cpu_backtrace = 0
kernel.osrelease = 5.15.0-69-generic
kernel.ostype = Linux
kernel.overflowgid = 65534
kernel.overflowuid = 65534
kernel.panic = 0
kernel.panic_on_io_nmi = 0
kernel.panic_on_oops = 0
kernel.panic_on_rcu_stall = 0
kernel.panic_on_unrecovered_nmi = 0
kernel.panic_on_warn = 0
kernel.panic_print = 0
kernel.perf_cpu_time_max_percent = 25
kernel.perf_event_max_contexts_per_stack = 8
kernel.perf_event_max_sample_rate = 100000
kernel.perf_event_max_stack = 127
kernel.perf_event_mlock_kb = 516
kernel.perf_event_paranoid = 4
kernel.pid_max = 4194304
kernel.poweroff_cmd = /sbin/poweroff
kernel.print-fatal-signals = 0
kernel.printk = 4 4 1 7
kernel.printk_delay = 0
kernel.printk_devkmsg = on
kernel.printk_ratelimit = 5
kernel.printk_ratelimit_burst = 10
kernel.pty.max = 4096
kernel.pty.nr = 1
kernel.pty.reserve = 1024
kernel.random.boot_id = 2d8e0003-1ea8-462d-9884-3041d5150283
kernel.random.entropy_avail = 256
kernel.random.poolsize = 256
kernel.random.urandom_min_reseed_secs = 60
kernel.random.uuid = 723cc34f-9fc4-42ee-a8b2-2ad3326ea154
kernel.random.write_wakeup_threshold = 256
kernel.randomize_va_space = 2
kernel.real-root-dev = 0
kernel.sched_autogroup_enabled = 1
kernel.sched_cfs_bandwidth_slice_us = 5000
kernel.sched_child_runs_first = 0
kernel.sched_deadline_period_max_us = 4194304
kernel.sched_deadline_period_min_us = 100
kernel.sched_energy_aware = 1
kernel.sched_rr_timeslice_ms = 100
kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000
kernel.sched_schedstats = 0
kernel.sched_util_clamp_max = 1024
kernel.sched_util_clamp_min = 1024
kernel.sched_util_clamp_min_rt_default = 1024
kernel.seccomp.actions_avail = kill_process kill_thread trap errno user_notif trace log allow
kernel.seccomp.actions_logged = kill_process kill_thread trap errno user_notif trace log
kernel.sem = 32000 1024000000 500 32000
kernel.sem_next_id = -1
kernel.sg-big-buff = 32768
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
kernel.soft_watchdog = 1
kernel.softlockup_all_cpu_backtrace = 0
kernel.softlockup_panic = 0
kernel.stack_tracer_enabled = 0
kernel.sysctl_writes_strict = 1
kernel.sysrq = 176
kernel.tainted = 2048
kernel.task_delayacct = 0
kernel.threads-max = 126175
kernel.timer_migration = 1
kernel.traceoff_on_warning = 0
kernel.tracepoint_printk = 0
kernel.unknown_nmi_panic = 0
kernel.unprivileged_bpf_disabled = 2
kernel.unprivileged_userns_clone = 1
kernel.version = #76~20.04.1-Ubuntu SMP Mon Mar 20 15:54:19 UTC 2023
kernel.watchdog = 1
kernel.watchdog_cpumask = 0-7
kernel.watchdog_thresh = 10
kernel.yama.ptrace_scope = 1
user.max_cgroup_namespaces = 63087
user.max_fanotify_groups = 128
user.max_fanotify_marks = 130838
user.max_inotify_instances = 128
user.max_inotify_watches = 123050
user.max_ipc_namespaces = 63087
user.max_mnt_namespaces = 63087
user.max_net_namespaces = 63087
user.max_pid_namespaces = 63087
user.max_time_namespaces = 63087
user.max_user_namespaces = 63087
user.max_uts_namespaces = 63087
vm.admin_reserve_kbytes = 8192
vm.compact_unevictable_allowed = 1
vm.compaction_proactiveness = 20
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 1500
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 1500
vm.dirtytime_expire_seconds = 43200
vm.extfrag_threshold = 500
vm.hugetlb_shm_group = 0
vm.laptop_mode = 0
vm.legacy_va_layout = 0
vm.lowmem_reserve_ratio = 256 256 32 0 0
vm.max_map_count = 65530
vm.memory_failure_early_kill = 0
vm.memory_failure_recovery = 1
vm.min_free_kbytes = 67584
vm.min_slab_ratio = 5
vm.min_unmapped_ratio = 1
vm.mmap_min_addr = 65536
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.nr_overcommit_hugepages = 0
vm.numa_stat = 1
vm.numa_zonelist_order = Node
vm.oom_dump_tasks = 1
vm.oom_kill_allocating_task = 0
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.page_lock_unfairness = 5
vm.panic_on_oom = 0
vm.percpu_pagelist_high_fraction = 0
vm.stat_interval = 1
vm.swappiness = 60
vm.unprivileged_userfaultfd = 0
vm.user_reserve_kbytes = 131072
vm.vfs_cache_pressure = 100
vm.watermark_boost_factor = 15000
vm.watermark_scale_factor = 10
vm.zone_reclaim_mode = 0
We then do the same thing on our Manjaro system - leaving out the pastebin - depending on your system you may want to exlude other lines as well especially if you use libvirt you will have to add the pattern -v -e 'fs\.binfmt_misc'
as well (use sudo to avoid the permission denied lines )
sudo sysctl --all | grep -v -e 'net\.' -v -e 'dev.' -v -e 'fs\.binfmt_misc'
Now if we pipe the results into a couple of files, we can then use comm to compare the two lists and display the differences.
grep -v -e 'net\.' -v -e 'dev.' feren.txt | sort > feren-filtered.txt
sudo sysctl --all | grep -v -e 'net\.' -v -e 'dev.' -v -e 'fs\.binfmt_misc' | sort > mjro-filtered.txt
The resulting list provides how Feren compares to Manjaro
comm -3 feren-filtered.txt mjro-filtered.txt
fs.aio-nr = 0
fs.aio-nr = 640
fs.binfmt_misc.status = enabled
fs.dentry-state = 191309 138363 45 0 103286 0
fs.dentry-state = 801259 766038 45 0 149704 0
fs.epoll.max_user_watches = 14608406
fs.epoll.max_user_watches = 3595219
fs.fanotify.max_user_marks = 130838
fs.fanotify.max_user_marks = 524988
fs.file-nr = 25376 0 9223372036854775807
fs.file-nr = 9248 0 9223372036854775807
fs.inode-nr = 648521 460
fs.inode-nr = 83156 0
fs.inode-state = 648521 460 0 0 0 0 0
fs.inode-state = 83156 0 0 0 0 0 0
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 1048576
fs.inotify.max_user_watches = 123050
fs.nr_open = 1048576
fs.nr_open = 1073741816
fs.protected_fifos = 1
fs.protected_hardlinks = 1
fs.protected_regular = 1
fs.protected_symlinks = 1
fs.quota.syncs = 0
fs.quota.syncs = 8
fs.suid_dumpable = 0
fs.suid_dumpable = 2
kernel.arch = x86_64
kernel.bootloader_type = 114
kernel.bootloader_type = 33
kernel.bootloader_version = 1
kernel.bootloader_version = 2
kernel.cad_pid = 1
kernel.core_pattern = |/lib/systemd/systemd-coredump %P %u %g %s %t 9223372036854775808 %h
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h
kernel.core_pipe_limit = 0
kernel.core_pipe_limit = 16
kernel.core_uses_pid = 0
kernel.core_uses_pid = 1
kernel.dmesg_restrict = 0
kernel.dmesg_restrict = 1
kernel.firmware_config.force_sysfs_fallback = 0
kernel.firmware_config.ignore_sysfs_fallback = 0
kernel.hostname = feren
kernel.hostname = tiger
kernel.hotplug =
kernel.io_delay_type = 0
kernel.io_delay_type = 1
kernel.kexec_load_limit_panic = -1
kernel.kexec_load_limit_reboot = -1
kernel.kptr_restrict = 0
kernel.kptr_restrict = 1
kernel.ns_last_pid = 25839
kernel.ns_last_pid = 4734
kernel.numa_balancing_promote_rate_limit_MBps = 65536
kernel.oops_limit = 10000
kernel.osrelease = 5.15.0-69-generic
kernel.osrelease = 6.5.0-next-20230831-1-next-git-13643-ga47fc304d2b6
kernel.perf_event_paranoid = 2
kernel.perf_event_paranoid = 4
kernel.printk = 4 4 1 4
kernel.printk = 4 4 1 7
kernel.pty.nr = 1
kernel.pty.nr = 4
kernel.random.boot_id = 2d8e0003-1ea8-462d-9884-3041d5150283
kernel.random.boot_id = ef3084e3-e0f1-4343-8ff7-3a92a70720fd
kernel.random.uuid = 44420695-4f34-4eb1-ae04-7f4928010636
kernel.random.uuid = 723cc34f-9fc4-42ee-a8b2-2ad3326ea154
kernel.sg-big-buff = 32768
kernel.soft_watchdog = 0
kernel.soft_watchdog = 1
kernel.split_lock_mitigate = 1
kernel.sysrq = 1
kernel.sysrq = 176
kernel.tainted = 12800
kernel.tainted = 2048
kernel.threads-max = 126175
kernel.threads-max = 512685
kernel.user_events_max = 32768
kernel.usermodehelper.bset = 4294967295 511
kernel.usermodehelper.inheritable = 4294967295 511
kernel.version = #1 SMP PREEMPT_DYNAMIC Mon, 04 Sep 2023 08:26:35 +0000
kernel.version = #76~20.04.1-Ubuntu SMP Mon Mar 20 15:54:19 UTC 2023
kernel.warn_limit = 0
kernel.watchdog = 0
kernel.watchdog = 1
kernel.watchdog_cpumask = 0-127
kernel.watchdog_cpumask = 0-7
user.max_cgroup_namespaces = 256342
user.max_cgroup_namespaces = 63087
user.max_fanotify_marks = 130838
user.max_fanotify_marks = 524988
user.max_inotify_instances = 1024
user.max_inotify_instances = 128
user.max_inotify_watches = 1048576
user.max_inotify_watches = 123050
user.max_ipc_namespaces = 256342
user.max_ipc_namespaces = 63087
user.max_mnt_namespaces = 256342
user.max_mnt_namespaces = 63087
user.max_net_namespaces = 256342
user.max_net_namespaces = 63087
user.max_pid_namespaces = 256342
user.max_pid_namespaces = 63087
user.max_time_namespaces = 256342
user.max_time_namespaces = 63087
user.max_user_namespaces = 256342
user.max_user_namespaces = 63087
user.max_uts_namespaces = 256342
user.max_uts_namespaces = 63087
vm.dirty_expire_centisecs = 1500
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 1500
vm.dirty_writeback_centisecs = 500
vm.hugetlb_optimize_vmemmap = 0
vm.memfd_noexec = 0
vm.mmap_rnd_bits = 28
vm.mmap_rnd_compat_bits = 8
Or you could use meld (if you have it installed)
meld feren-filtered.txt mjro-filtered.txt
Teo
7 September 2023 10:57
84
Well, from the 1121 lines/parameters, when i compare with meld, only about the half is different Sounds like an easy job And one should really know what one is doing, otherwise to test every possible parameter the combinations will be 2⁵⁰⁰ =3,2733906079e+150 whatever that number means.