All Projects → dolohow → Uksm

dolohow / Uksm

Ultra Kernel Samepage Merging

Projects that are alternatives of or similar to Uksm

Patchman
Patchman is a Linux Patch Status Monitoring System
Stars: ✭ 163 (-7.39%)
Mutual labels:  kernel, patch
le9-patch
[PATCH] mm: Protect the working set under memory pressure to prevent thrashing, avoid high latency and prevent livelock in near-OOM conditions
Stars: ✭ 164 (-6.82%)
Mutual labels:  kernel, patch
Ktweak
A no-nonsense kernel tweak script for Linux and Android systems, backed by evidence.
Stars: ✭ 146 (-17.05%)
Mutual labels:  kernel
Hdk
(unofficial) Hyper-V® Development Kit
Stars: ✭ 166 (-5.68%)
Mutual labels:  kernel
Linux 0.12
Linux0.12内核代码中文注释+在高版本GCC 5.4.0 + Ubuntu 16.04中编译成功并在Bochs正常测试运行
Stars: ✭ 157 (-10.8%)
Mutual labels:  kernel
Clashos
multiplayer arcade game for bare metal Raspberry Pi 3 B+
Stars: ✭ 145 (-17.61%)
Mutual labels:  kernel
Willos
💾 A minimal kernel (just a hobby, won't be big and professional). // Work In Progress
Stars: ✭ 163 (-7.39%)
Mutual labels:  kernel
Kernel comment
中文注释说明内核源码
Stars: ✭ 145 (-17.61%)
Mutual labels:  kernel
Ioctlbf
Windows Kernel Drivers fuzzer
Stars: ✭ 170 (-3.41%)
Mutual labels:  kernel
Sunriseos
Horizon/NX kernel reimplementation
Stars: ✭ 157 (-10.8%)
Mutual labels:  kernel
Pubg Pak Hacker
use windows kernel deriver hidden file and itself to Bypass BE
Stars: ✭ 157 (-10.8%)
Mutual labels:  kernel
Hyperkernel
Stars: ✭ 152 (-13.64%)
Mutual labels:  kernel
Android Lkms
Android Loadable Kernel Modules - mostly used for reversing and debugging on controlled systems/emulators
Stars: ✭ 164 (-6.82%)
Mutual labels:  kernel
Nftlb
nftables load balancer
Stars: ✭ 147 (-16.48%)
Mutual labels:  kernel
Linux Kernel Utilities
👷 Utilities to compile and / or update linux kernels for Debian and derivatives (e.g. Ubuntu, LinuxMint, etc.)
Stars: ✭ 166 (-5.68%)
Mutual labels:  kernel
Gvisor
Application Kernel for Containers
Stars: ✭ 12,012 (+6725%)
Mutual labels:  kernel
Awesome Windows Security Development
awesome-windows-security-development
Stars: ✭ 154 (-12.5%)
Mutual labels:  kernel
Synestiaos
The Synestia Operating System
Stars: ✭ 159 (-9.66%)
Mutual labels:  kernel
Ntlua
Lua in kernel-mode because why not.
Stars: ✭ 175 (-0.57%)
Mutual labels:  kernel
Executivecallbackobjects
Research on Windows Kernel Executive Callback Objects
Stars: ✭ 169 (-3.98%)
Mutual labels:  kernel

UKSM


The patches in this repo are the latest UKSM patches

The current release number: 0.1.2.6

This release includes two bug fixes from Huawei, many thanks to their engineers and esepcially to @colo-ft who submitted the patches.

Changelog for all versions is in Documentation/vm/uksm.txt.

What is it?

The Ultra Kernel Samepage Merging feature

Ultra KSM. Copyright (C) 2011-2016 Nai Xia

This is an improvement upon KSM. Some basic data structures and routines are borrowed from ksm.c .

Its new features:

  1. Full system scan: It automatically scans all user processes' anonymous VMAs. Kernel-user interaction to submit a memory area to KSM is no longer needed.

  2. Rich area detection: It automatically detects rich areas containing abundant duplicated pages based. Rich areas are given a full scan speed. Poor areas are sampled at a reasonable speed with very low CPU consumption.

  3. Ultra Per-page scan speed improvement: A new hash algorithm is proposed. As a result, on a machine with Core(TM)2 Quad Q9300 CPU in 32-bit mode and 800MHZ DDR2 main memory, it can scan memory areas that does not contain duplicated pages at speed of 627MB/sec ~ 2445MB/sec and can merge duplicated areas at speed of 477MB/sec ~ 923MB/sec.

  4. Thrashing area avoidance: Thrashing area(an VMA that has frequent Ksm page break-out) can be filtered out. My benchmark shows it's more efficient than KSM's per-page hash value based volatile page detection.

  5. Misc changes upon KSM:

    • It has a fully x86-opitmized memcmp dedicated for 4-byte-aligned page comparison. It's much faster than default C version on x86.
    • rmap_item now has an struct *page member to loosely cache a address-->page mapping, which reduces too much time-costly follow_page().
    • The VMA creation/exit procedures are hooked to let the Ultra KSM know.
    • try_to_merge_two_pages() now can revert a pte if it fails. No break_ ksm is needed for this case.
  6. Full Zero Page consideration(contributed by Figo Zhang) Now uksmd consider full zero pages as special pages and merge them to an special unswappable uksm zero page.

Credits

Ultra KSM. Copyright (C) 2011-2016 Nai Xia

Reference

[FAST '18] UKSM: Swift Memory Deduplication via Hierarchical and Adaptive Memory Region Distilling [PDF] [Slides]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].