Knowledge (XXG)

zswap

Source đź“ť

2127: 395: 2576: 2566: 2556: 2546: 2536: 2139: 2113: 409: 294:, which specifies the maximum percentage of total system RAM that can be occupied by the pool. The memory pool is not preallocated to its configured maximum size, and instead grows and shrinks as required. When the configured maximum pool size is reached as the result of performed swapping, or when growing the pool is impossible due to an 239:, which is a mechanism of the Linux kernel that abstracts various types of storage that can be used as swap space. As a result, zswap operates as a backend driver for frontswap by providing what is internally visible as a pseudo-RAM device. In other words, the frontswap API makes zswap capable of intercepting 324:", hence the allocator name) per physical memory page, which brings both advantages due to easy coalescing and reusing of freed space, and disadvantages due to possible lower memory utilization. However, as a result of its design, zbud cannot 306:(LRU) basis. This approach makes zswap a true swap cache, as the oldest cached pages are evicted to a swap device once the cache is full, making room for newer swapped pages to be compressed and cached. 488: 1689: 2665: 336:
Both zswap and zbud were created by Seth Jennings. The first public announcement was in December 2012, and the development continued until May 2013 at which point the
978: 2516: 2612: 2177: 1778: 320:'s zcache, which is another virtual memory compression implementation for the Linux kernel. Internally, zbud works by storing up to two compressed pages (" 1773: 813: 683: 627: 2225: 262:
supported by the Linux kernel. The selection of the desired compression module can be performed dynamically at the boot time through the value of
3127: 903: 2941: 2912: 2569: 2373: 2197: 2559: 2131: 400: 654: 2579: 383:
in kernel version 4.14. Though, as a result of its design, at least one already existing swap device is required for zswap to be used.
353:
Since version 6.8 of the Linux kernel, which was released on March 11, 2024, zswap supports disabling writeback for specific cgroups.
247:
for the already swapped pages; the access to those two paths allows zswap to act as a compressed write-back cache for swapped pages.
1510: 1278: 2716: 2660: 258:, which makes it possible, for example, to offload the compression tasks from the main CPU using any of the hardware compression 2635: 2605: 2396: 2170: 1008: 3132: 2828: 2726: 2521: 1620: 108: 948: 350:
Since version 3.15 of the Linux kernel, which was released on June 8, 2014, zswap properly supports multiple swap devices.
270: 3106: 2655: 2640: 2054: 273:(LZO) compression. As of version 3.13 of the Linux kernel, zswap also needs to be explicitly enabled by specifying value 180:. Later writeback to the actual swap device is deferred or even completely avoided, resulting in a significantly reduced 2701: 2686: 2645: 2381: 2219: 1935: 983: 263: 2867: 2814: 2358: 1337: 2416: 839: 3137: 2882: 2721: 2598: 2539: 2426: 2406: 2259: 2163: 2036: 1850: 968: 896: 161: 316:
used internally by zswap for storing compressed pages, implemented as a rewrite of the zbud allocator used by the
2917: 2736: 2696: 2691: 2650: 2485: 2041: 1683: 1019: 2960: 2847: 2711: 2345: 1604: 1589: 1505: 1293: 1098: 84: 365:, which provides a similar but still different "swap compressed pages to RAM" mechanism to the Linux kernel. 3142: 2706: 2549: 2411: 2386: 2292: 1947: 1746: 1382: 1270: 1225: 1175: 1159: 1136: 432: 321: 2363: 958: 3094: 3033: 2922: 2902: 2851: 2809: 2315: 2213: 2092: 2069: 2064: 1899: 1865: 1855: 1727: 1672: 1549: 1088: 251: 2877: 2843: 2745: 2681: 2143: 2046: 889: 344: 259: 2391: 761: 3074: 3048: 2076: 1678: 1240: 938: 3043: 2995: 2872: 2269: 1872: 1351: 1210: 1144: 303: 212: 192: 103: 814:"Linux kernel source tree: kernel/git/torvalds/linux.git: mm/zswap: support multiple swap devices" 517: 2980: 2887: 2511: 2495: 2421: 2026: 1860: 1446: 1346: 1283: 1205: 1200: 988: 317: 255: 3089: 3038: 2970: 2927: 2768: 2287: 2186: 1997: 1645: 1615: 1610: 1461: 1116: 1078: 422: 325: 204: 153: 375:
In comparison, zswap acts as a RAM-based cache for swap devices. This provides zswap with an
3069: 2621: 2464: 2459: 2302: 1751: 1313: 1034: 1024: 933: 313: 169: 115: 91: 3013: 2975: 2946: 2454: 2353: 1987: 1655: 1436: 196: 787: 340:
reached its maturity although still having the status of an experimental kernel feature.
549: 3099: 3023: 2985: 2857: 2469: 2436: 2431: 2277: 2236: 2017: 1922: 1833: 1710: 1705: 1700: 1695: 1478: 1303: 1298: 943: 576: 376: 299: 228: 735: 709: 3121: 2965: 2804: 2758: 2446: 2249: 2244: 1952: 1768: 1574: 1564: 1323: 1195: 1073: 295: 2892: 2117: 1838: 1756: 1650: 1594: 953: 912: 414: 379:
mechanism for less used swapped pages, which zram lacked until the introduction of
369: 208: 146: 328:
more memory space than it would be originally occupied by the uncompressed pages.
840:"zswap: memcontrol: implement zswap writeback disabling · torvalds/linux@501a06f" 184:
for Linux systems that require swapping; the tradeoff is the need for additional
3018: 3000: 2783: 2773: 2763: 2490: 1843: 1736: 1318: 1215: 240: 191:
As a result of reduced I/O, zswap offers advantages to various devices that use
173: 165: 2254: 1930: 1905: 1892: 1797: 1785: 1715: 1625: 1111: 1014: 973: 817: 687: 631: 553: 427: 390: 372:
using RAM for storing data, which acts as a regular and separate swap device.
284:
The maximum size of the memory pool used by zswap is configurable through the
244: 216: 150: 52: 2955: 2862: 2788: 2753: 2401: 2282: 1792: 1761: 1630: 1466: 1255: 1126: 1083: 655:"Zcache and RAMster (oh, and frontswap too): Overview and some benchmarking" 628:"Linux kernel source tree: kernel/git/torvalds/linux.git: zswap: add to mm/" 684:"Linux kernel source tree: kernel/git/torvalds/linux.git: zbud: add to mm/" 203:
and similar low-end hardware devices, as well as to other devices that use
3084: 2335: 2330: 2320: 2310: 1910: 1731: 1720: 1640: 1584: 1579: 1525: 1473: 1362: 1288: 521: 337: 3079: 3008: 2778: 2325: 1992: 1977: 1887: 1877: 1817: 1741: 1635: 1559: 1500: 1414: 1377: 1308: 1250: 1245: 1149: 1106: 862: 606: 463: 200: 168:
to a swap device when they are to be swapped out, zswap performs their
120: 17: 1982: 1967: 1957: 1812: 1807: 1569: 1520: 1493: 1456: 1426: 1393: 1372: 1121: 1068: 963: 157: 2590: 2155: 858: 602: 577:"Frontswap [PATCH 0/4] (was Transcendent Memory): Overview" 459: 3028: 2112: 1802: 1599: 1554: 1515: 1483: 1451: 1409: 1404: 1367: 1235: 1230: 1190: 1185: 408: 286: 96: 31: 347:
in kernel version 3.11, which was released on September 2, 2013.
1882: 1660: 1488: 1419: 1063: 362: 38: 2594: 2159: 885: 881: 3064: 1962: 1940: 762:"Linux kernel 3.11, Section 9. Zswap: A compressed swap cache" 492: 243:
while they are being swapped out, and capable of intercepting
232: 185: 181: 177: 550:"Linux kernel documentation: Documentation/vm/zswap.txt" 368:
The main difference is that zram provides a compressed
2198:
Memory management as a function of an operating system
131: 227:
zswap is integrated into the rest of Linux kernel's
3057: 2994: 2940: 2901: 2836: 2827: 2797: 2744: 2735: 2674: 2628: 2504: 2478: 2445: 2372: 2344: 2301: 2268: 2235: 2206: 2085: 2025: 2016: 1921: 1826: 1542: 1435: 1345: 1336: 1269: 1174: 1167: 1158: 1135: 1097: 1056: 1049: 997: 926: 919: 126: 114: 102: 90: 80: 61: 51: 511: 509: 482: 480: 788:"Linux kernel 3.15, Section 4. Memory management" 30:"Zcache" redirects here. Not to be confused with 343:zswap (together with zbud) was merged into the 2606: 2171: 897: 544: 542: 540: 538: 302:from the memory pool to a swap device on the 8: 2517:International Symposium on Memory Management 453: 451: 449: 447: 46: 489:"New Linux zswap compression functionality" 2833: 2741: 2613: 2599: 2591: 2178: 2164: 2156: 2022: 1918: 1342: 1171: 1164: 1053: 923: 904: 890: 882: 215:, so avoiding it to be used for providing 45: 518:"Zswap Merged Into The Linux 3.11 Kernel" 2132:Free and open-source software portal 1690:Earliest eligible virtual deadline first 443: 219:prevents it from wearing out quickly. 7: 487:Jenifer Hopper (December 11, 2012). 401:Free and open-source software portal 361:One of the alternatives to zswap is 176:dynamically allocated in the system 2226:Input–output memory management unit 458:Seth Jennings (February 12, 2013). 269:; if not specified, it selects the 250:Internally, zswap uses compression 188:cycles to perform the compression. 149:feature that provides a compressed 653:Dan Magenheimer (March 29, 2012). 575:Dan Magenheimer (April 22, 2010). 25: 857:Dan Magenheimer (April 3, 2013). 736:" zswap: compressed swap caching" 710:" zswap: compressed swap caching" 516:Michael Larabel (July 11, 2013). 460:"The zswap compressed swap cache" 2717:Object-oriented operating system 2575: 2574: 2565: 2564: 2555: 2554: 2545: 2544: 2535: 2534: 2138: 2137: 2125: 2111: 979:Supported computer architectures 407: 393: 27:Linux memory compression feature 2397:Concurrent mark sweep collector 1009:The Linux Programming Interface 601:Jonathan Corbet (May 4, 2010). 254:provided by the Linux kernel's 2727:Supercomputer operating system 2522:Region-based memory management 859:"In-kernel memory compression" 277:for the kernel boot parameter 211:has a limited lifespan due to 1: 3128:Free software programmed in C 298:condition, swapped pages are 2702:Just enough operating system 2687:Distributed operating system 2570:Memory management algorithms 2382:Automatic Reference Counting 2220:Translation lookaside buffer 172:and then stores them into a 2815:User space and kernel space 2560:Automatic memory management 2359:C dynamic memory allocation 3159: 2722:Real-time operating system 2580:Memory management software 2427:Tracing garbage collection 2260:Virtual memory compression 1851:High-performance computing 1673:Process and I/O schedulers 603:"Cleancache and Frontswap" 162:virtual memory compression 36: 29: 2918:Multilevel feedback queue 2913:Fixed-priority preemptive 2697:Hobbyist operating system 2692:Embedded operating system 2530: 2193: 2105: 1684:Completely Fair Scheduler 949:Tanenbaum–Torvalds debate 2961:General protection fault 2712:Network operating system 2666:User features comparison 2354:Static memory allocation 2346:Manual memory management 1605:Kernel same-page merging 57:Seth Jennings and others 37:Not to be confused with 2707:Mobile operating system 2412:Garbage-first collector 2387:Boehm garbage collector 2293:x86 memory segmentation 1948:OS-level virtualization 433:Swap partitions on SSDs 2810:Loadable kernel module 2417:Mark–compact algorithm 2214:Memory management unit 2093:List of Linux adopters 1035:Linux User Group (LUG) 67:; 11 years ago 65:September 2, 2013 3133:Linux kernel features 2878:Process control block 2844:Computer multitasking 2682:Disk operating system 381:CONFIG_ZRAM_WRITEBACK 345:Linux kernel mainline 312:is a special-purpose 264:kernel boot parameter 109:Linux kernel features 3049:Virtual tape library 2641:Forensic engineering 2364:new and delete (C++) 1679:Brain Fuck Scheduler 939:Linux Mark Institute 271:Lempel–Ziv–Oberhumer 231:subsystem using the 207:(SSDs) for storage. 164:. Instead of moving 160:pages, as a form of 3058:Supporting concepts 3044:Virtual file system 2270:Memory segmentation 1873:Real-time computing 1145:Linux Standard Base 768:. September 2, 2013 716:. December 11, 2012 556:. November 22, 2013 304:least recently used 193:flash-based storage 48: 2981:Segmentation fault 2829:Process management 2512:Automatic variable 2496:Unreachable memory 2422:Reference counting 2392:Cheney's algorithm 2374:Garbage collection 1861:Compute Node Linux 1447:C standard library 205:solid-state drives 3138:Memory management 3115: 3114: 2971:Memory protection 2942:Memory management 2936: 2935: 2928:Shortest job next 2823: 2822: 2622:Operating systems 2588: 2587: 2540:Memory management 2288:Virtual 8086 mode 2187:Memory management 2153: 2152: 2101: 2100: 2012: 2011: 2008: 2007: 1646:Network scheduler 1538: 1537: 1534: 1533: 1332: 1331: 1079:Linux kernel oops 1045: 1044: 1025:Linux conferences 792:kernelnewbies.org 766:kernelnewbies.org 423:Cache (computing) 140: 139: 16:(Redirected from 3150: 3070:Computer network 2834: 2742: 2615: 2608: 2601: 2592: 2578: 2577: 2568: 2567: 2558: 2557: 2548: 2547: 2538: 2537: 2465:Dangling pointer 2460:Buffer over-read 2432:Strong reference 2303:Memory allocator 2180: 2173: 2166: 2157: 2141: 2140: 2130: 2129: 2128: 2118:Linux portal 2116: 2115: 2023: 1919: 1728:Security Modules 1343: 1172: 1165: 1054: 934:Linux Foundation 924: 906: 899: 892: 883: 874: 873: 871: 869: 854: 848: 847: 836: 830: 829: 827: 825: 810: 804: 803: 801: 799: 784: 778: 777: 775: 773: 758: 752: 751: 749: 747: 732: 726: 725: 723: 721: 706: 700: 699: 697: 695: 680: 674: 673: 671: 669: 659: 650: 644: 643: 641: 639: 624: 618: 617: 615: 613: 598: 592: 591: 589: 587: 572: 566: 565: 563: 561: 546: 533: 532: 530: 528: 513: 504: 503: 501: 499: 484: 475: 474: 472: 470: 455: 417: 412: 411: 403: 398: 397: 396: 382: 314:memory allocator 293: 292:max_pool_percent 289: 280: 276: 268: 267:zswap.compressor 197:embedded devices 136: 133: 92:Operating system 75: 73: 68: 49: 21: 3158: 3157: 3153: 3152: 3151: 3149: 3148: 3147: 3118: 3117: 3116: 3111: 3053: 3014:Defragmentation 2999: 2990: 2976:Protection ring 2945: 2932: 2904: 2897: 2819: 2793: 2731: 2670: 2624: 2619: 2589: 2584: 2526: 2500: 2474: 2455:Buffer overflow 2441: 2368: 2340: 2297: 2264: 2231: 2202: 2189: 2184: 2154: 2149: 2126: 2124: 2110: 2097: 2081: 2028: 2004: 1988:User-mode Linux 1917: 1822: 1530: 1438: 1431: 1350: 1328: 1265: 1177: 1154: 1131: 1093: 1041: 993: 984:Version history 915: 910: 879: 877: 867: 865: 856: 855: 851: 838: 837: 833: 823: 821: 820:. April 7, 2014 812: 811: 807: 797: 795: 786: 785: 781: 771: 769: 760: 759: 755: 745: 743: 734: 733: 729: 719: 717: 708: 707: 703: 693: 691: 690:. July 11, 2013 682: 681: 677: 667: 665: 657: 652: 651: 647: 637: 635: 634:. July 11, 2013 626: 625: 621: 611: 609: 600: 599: 595: 585: 583: 574: 573: 569: 559: 557: 548: 547: 536: 526: 524: 515: 514: 507: 497: 495: 486: 485: 478: 468: 466: 457: 456: 445: 441: 413: 406: 399: 394: 392: 389: 380: 359: 334: 291: 285: 278: 274: 266: 225: 130: 71: 69: 66: 62:Initial release 42: 35: 28: 23: 22: 15: 12: 11: 5: 3156: 3154: 3146: 3145: 3143:Virtual memory 3140: 3135: 3130: 3120: 3119: 3113: 3112: 3110: 3109: 3104: 3103: 3102: 3100:User interface 3097: 3087: 3082: 3077: 3072: 3067: 3061: 3059: 3055: 3054: 3052: 3051: 3046: 3041: 3036: 3031: 3026: 3024:File attribute 3021: 3016: 3011: 3005: 3003: 2992: 2991: 2989: 2988: 2986:Virtual memory 2983: 2978: 2973: 2968: 2963: 2958: 2952: 2950: 2938: 2937: 2934: 2933: 2931: 2930: 2925: 2920: 2915: 2909: 2907: 2899: 2898: 2896: 2895: 2890: 2885: 2880: 2875: 2870: 2865: 2860: 2858:Context switch 2855: 2840: 2838: 2831: 2825: 2824: 2821: 2820: 2818: 2817: 2812: 2807: 2801: 2799: 2795: 2794: 2792: 2791: 2786: 2781: 2776: 2771: 2766: 2761: 2756: 2750: 2748: 2739: 2733: 2732: 2730: 2729: 2724: 2719: 2714: 2709: 2704: 2699: 2694: 2689: 2684: 2678: 2676: 2672: 2671: 2669: 2668: 2663: 2658: 2653: 2648: 2643: 2638: 2632: 2630: 2626: 2625: 2620: 2618: 2617: 2610: 2603: 2595: 2586: 2585: 2583: 2582: 2572: 2562: 2552: 2550:Virtual memory 2542: 2531: 2528: 2527: 2525: 2524: 2519: 2514: 2508: 2506: 2502: 2501: 2499: 2498: 2493: 2488: 2482: 2480: 2476: 2475: 2473: 2472: 2470:Stack overflow 2467: 2462: 2457: 2451: 2449: 2443: 2442: 2440: 2439: 2437:Weak reference 2434: 2429: 2424: 2419: 2414: 2409: 2404: 2399: 2394: 2389: 2384: 2378: 2376: 2370: 2369: 2367: 2366: 2361: 2356: 2350: 2348: 2342: 2341: 2339: 2338: 2333: 2328: 2323: 2318: 2313: 2307: 2305: 2299: 2298: 2296: 2295: 2290: 2285: 2280: 2278:Protected mode 2274: 2272: 2266: 2265: 2263: 2262: 2257: 2252: 2247: 2241: 2239: 2237:Virtual memory 2233: 2232: 2230: 2229: 2223: 2217: 2210: 2208: 2204: 2203: 2201: 2200: 2194: 2191: 2190: 2185: 2183: 2182: 2175: 2168: 2160: 2151: 2150: 2148: 2147: 2135: 2121: 2106: 2103: 2102: 2099: 2098: 2096: 2095: 2089: 2087: 2083: 2082: 2080: 2079: 2074: 2073: 2072: 2067: 2059: 2058: 2057: 2049: 2044: 2039: 2033: 2031: 2020: 2014: 2013: 2010: 2009: 2006: 2005: 2003: 2002: 2001: 2000: 1995: 1990: 1985: 1980: 1972: 1971: 1970: 1965: 1960: 1955: 1945: 1944: 1943: 1938: 1927: 1925: 1923:Virtualization 1916: 1915: 1914: 1913: 1908: 1897: 1896: 1895: 1890: 1885: 1880: 1870: 1869: 1868: 1863: 1858: 1848: 1847: 1846: 1841: 1830: 1828: 1824: 1823: 1821: 1820: 1815: 1810: 1805: 1800: 1795: 1789: 1788: 1783: 1782: 1781: 1776: 1769:Device drivers 1765: 1764: 1759: 1754: 1749: 1744: 1739: 1734: 1724: 1723: 1718: 1713: 1711:SCHED_DEADLINE 1708: 1706:O(1) scheduler 1703: 1701:O(n) scheduler 1698: 1696:Noop scheduler 1693: 1687: 1681: 1676: 1669: 1668: 1663: 1658: 1653: 1648: 1643: 1638: 1633: 1628: 1623: 1618: 1613: 1608: 1602: 1597: 1592: 1587: 1582: 1577: 1572: 1567: 1562: 1557: 1552: 1550:Kernel modules 1546: 1544: 1540: 1539: 1536: 1535: 1532: 1531: 1529: 1528: 1523: 1518: 1513: 1508: 1503: 1498: 1497: 1496: 1491: 1486: 1481: 1476: 1471: 1470: 1469: 1459: 1454: 1443: 1441: 1433: 1432: 1430: 1429: 1424: 1423: 1422: 1412: 1407: 1402: 1399: 1396: 1391: 1388: 1385: 1380: 1375: 1370: 1365: 1360: 1356: 1354: 1340: 1334: 1333: 1330: 1329: 1327: 1326: 1321: 1316: 1311: 1306: 1304:Memory barrier 1301: 1296: 1291: 1286: 1281: 1275: 1273: 1267: 1266: 1264: 1263: 1262: 1261: 1258: 1253: 1248: 1243: 1238: 1233: 1223: 1222: 1221: 1218: 1213: 1208: 1203: 1198: 1193: 1182: 1180: 1169: 1162: 1156: 1155: 1153: 1152: 1147: 1141: 1139: 1133: 1132: 1130: 1129: 1124: 1119: 1114: 1109: 1103: 1101: 1095: 1094: 1092: 1091: 1086: 1081: 1076: 1071: 1066: 1060: 1058: 1051: 1047: 1046: 1043: 1042: 1040: 1039: 1038: 1037: 1029: 1028: 1027: 1022: 1017: 1012: 1001: 999: 995: 994: 992: 991: 986: 981: 976: 971: 966: 961: 956: 951: 946: 941: 936: 930: 928: 921: 917: 916: 911: 909: 908: 901: 894: 886: 876: 875: 849: 831: 805: 794:. June 8, 2014 779: 753: 727: 701: 675: 662:oss.oracle.com 645: 619: 593: 567: 534: 505: 476: 442: 440: 437: 436: 435: 430: 425: 419: 418: 404: 388: 385: 358: 355: 333: 330: 229:virtual memory 224: 221: 138: 137: 128: 124: 123: 118: 112: 111: 106: 100: 99: 94: 88: 87: 82: 78: 77: 63: 59: 58: 55: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3155: 3144: 3141: 3139: 3136: 3134: 3131: 3129: 3126: 3125: 3123: 3108: 3105: 3101: 3098: 3096: 3093: 3092: 3091: 3088: 3086: 3083: 3081: 3078: 3076: 3073: 3071: 3068: 3066: 3063: 3062: 3060: 3056: 3050: 3047: 3045: 3042: 3040: 3037: 3035: 3032: 3030: 3027: 3025: 3022: 3020: 3017: 3015: 3012: 3010: 3007: 3006: 3004: 3002: 2997: 2993: 2987: 2984: 2982: 2979: 2977: 2974: 2972: 2969: 2967: 2966:Memory paging 2964: 2962: 2959: 2957: 2954: 2953: 2951: 2948: 2943: 2939: 2929: 2926: 2924: 2921: 2919: 2916: 2914: 2911: 2910: 2908: 2906: 2900: 2894: 2891: 2889: 2886: 2884: 2881: 2879: 2876: 2874: 2871: 2869: 2866: 2864: 2861: 2859: 2856: 2853: 2849: 2845: 2842: 2841: 2839: 2835: 2832: 2830: 2826: 2816: 2813: 2811: 2808: 2806: 2805:Device driver 2803: 2802: 2800: 2796: 2790: 2787: 2785: 2782: 2780: 2777: 2775: 2772: 2770: 2767: 2765: 2762: 2760: 2757: 2755: 2752: 2751: 2749: 2747: 2746:Architectures 2743: 2740: 2738: 2734: 2728: 2725: 2723: 2720: 2718: 2715: 2713: 2710: 2708: 2705: 2703: 2700: 2698: 2695: 2693: 2690: 2688: 2685: 2683: 2680: 2679: 2677: 2673: 2667: 2664: 2662: 2659: 2657: 2654: 2652: 2649: 2647: 2644: 2642: 2639: 2637: 2634: 2633: 2631: 2627: 2623: 2616: 2611: 2609: 2604: 2602: 2597: 2596: 2593: 2581: 2573: 2571: 2563: 2561: 2553: 2551: 2543: 2541: 2533: 2532: 2529: 2523: 2520: 2518: 2515: 2513: 2510: 2509: 2507: 2503: 2497: 2494: 2492: 2489: 2487: 2486:Fragmentation 2484: 2483: 2481: 2477: 2471: 2468: 2466: 2463: 2461: 2458: 2456: 2453: 2452: 2450: 2448: 2447:Memory safety 2444: 2438: 2435: 2433: 2430: 2428: 2425: 2423: 2420: 2418: 2415: 2413: 2410: 2408: 2405: 2403: 2400: 2398: 2395: 2393: 2390: 2388: 2385: 2383: 2380: 2379: 2377: 2375: 2371: 2365: 2362: 2360: 2357: 2355: 2352: 2351: 2349: 2347: 2343: 2337: 2334: 2332: 2329: 2327: 2324: 2322: 2319: 2317: 2314: 2312: 2309: 2308: 2306: 2304: 2300: 2294: 2291: 2289: 2286: 2284: 2281: 2279: 2276: 2275: 2273: 2271: 2267: 2261: 2258: 2256: 2253: 2251: 2250:Memory paging 2248: 2246: 2245:Demand paging 2243: 2242: 2240: 2238: 2234: 2227: 2224: 2221: 2218: 2215: 2212: 2211: 2209: 2205: 2199: 2196: 2195: 2192: 2188: 2181: 2176: 2174: 2169: 2167: 2162: 2161: 2158: 2146: 2145: 2136: 2134: 2133: 2122: 2120: 2119: 2114: 2108: 2107: 2104: 2094: 2091: 2090: 2088: 2084: 2078: 2075: 2071: 2068: 2066: 2063: 2062: 2060: 2056: 2053: 2052: 2051:Thin client: 2050: 2048: 2045: 2043: 2040: 2038: 2035: 2034: 2032: 2030: 2024: 2021: 2019: 2015: 1999: 1996: 1994: 1991: 1989: 1986: 1984: 1981: 1979: 1976: 1975: 1973: 1969: 1966: 1964: 1961: 1959: 1956: 1954: 1953:Linux-VServer 1951: 1950: 1949: 1946: 1942: 1939: 1937: 1934: 1933: 1932: 1929: 1928: 1926: 1924: 1920: 1912: 1909: 1907: 1904: 1903: 1901: 1898: 1894: 1891: 1889: 1886: 1884: 1881: 1879: 1876: 1875: 1874: 1871: 1867: 1864: 1862: 1859: 1857: 1854: 1853: 1852: 1849: 1845: 1842: 1840: 1837: 1836: 1835: 1832: 1831: 1829: 1825: 1819: 1816: 1814: 1811: 1809: 1806: 1804: 1801: 1799: 1796: 1794: 1791: 1790: 1787: 1784: 1780: 1777: 1775: 1772: 1771: 1770: 1767: 1766: 1763: 1760: 1758: 1755: 1753: 1750: 1748: 1745: 1743: 1740: 1738: 1735: 1733: 1729: 1726: 1725: 1722: 1719: 1717: 1714: 1712: 1709: 1707: 1704: 1702: 1699: 1697: 1694: 1691: 1688: 1685: 1682: 1680: 1677: 1674: 1671: 1670: 1667: 1664: 1662: 1659: 1657: 1654: 1652: 1649: 1647: 1644: 1642: 1639: 1637: 1634: 1632: 1629: 1627: 1624: 1622: 1619: 1617: 1614: 1612: 1609: 1606: 1603: 1601: 1598: 1596: 1593: 1591: 1588: 1586: 1583: 1581: 1578: 1576: 1575:Device mapper 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1556: 1553: 1551: 1548: 1547: 1545: 1541: 1527: 1524: 1522: 1519: 1517: 1514: 1512: 1509: 1507: 1504: 1502: 1499: 1495: 1492: 1490: 1487: 1485: 1482: 1480: 1477: 1475: 1472: 1468: 1465: 1464: 1463: 1460: 1458: 1455: 1453: 1450: 1449: 1448: 1445: 1444: 1442: 1440: 1434: 1428: 1425: 1421: 1418: 1417: 1416: 1413: 1411: 1408: 1406: 1403: 1400: 1397: 1395: 1392: 1389: 1386: 1384: 1381: 1379: 1376: 1374: 1371: 1369: 1366: 1364: 1361: 1358: 1357: 1355: 1353: 1348: 1344: 1341: 1339: 1335: 1325: 1322: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1300: 1297: 1295: 1292: 1290: 1287: 1285: 1282: 1280: 1277: 1276: 1274: 1272: 1268: 1259: 1257: 1254: 1252: 1249: 1247: 1244: 1242: 1239: 1237: 1234: 1232: 1229: 1228: 1227: 1224: 1219: 1217: 1214: 1212: 1209: 1207: 1204: 1202: 1199: 1197: 1194: 1192: 1189: 1188: 1187: 1184: 1183: 1181: 1179: 1173: 1170: 1166: 1163: 1161: 1157: 1151: 1148: 1146: 1143: 1142: 1140: 1138: 1134: 1128: 1125: 1123: 1120: 1118: 1115: 1113: 1110: 1108: 1105: 1104: 1102: 1100: 1096: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1061: 1059: 1055: 1052: 1048: 1036: 1033: 1032: 1030: 1026: 1023: 1021: 1018: 1016: 1013: 1011: 1010: 1006: 1005: 1003: 1002: 1000: 996: 990: 987: 985: 982: 980: 977: 975: 972: 970: 967: 965: 962: 960: 957: 955: 952: 950: 947: 945: 942: 940: 937: 935: 932: 931: 929: 925: 922: 918: 914: 907: 902: 900: 895: 893: 888: 887: 884: 880: 864: 860: 853: 850: 845: 841: 835: 832: 819: 815: 809: 806: 793: 789: 783: 780: 767: 763: 757: 754: 742:. May 8, 2013 741: 737: 731: 728: 715: 711: 705: 702: 689: 685: 679: 676: 663: 656: 649: 646: 633: 629: 623: 620: 608: 604: 597: 594: 582: 578: 571: 568: 555: 551: 545: 543: 541: 539: 535: 523: 519: 512: 510: 506: 494: 490: 483: 481: 477: 465: 461: 454: 452: 450: 448: 444: 438: 434: 431: 429: 426: 424: 421: 420: 416: 410: 405: 402: 391: 386: 384: 378: 373: 371: 366: 364: 356: 354: 351: 348: 346: 341: 339: 331: 329: 327: 323: 319: 315: 311: 307: 305: 301: 297: 296:out-of-memory 288: 282: 279:zswap.enabled 272: 265: 261: 257: 253: 248: 246: 242: 238: 234: 230: 222: 220: 218: 214: 210: 206: 202: 198: 194: 189: 187: 183: 179: 175: 171: 167: 163: 159: 155: 152: 148: 144: 135: 129: 125: 122: 119: 117: 113: 110: 107: 105: 101: 98: 95: 93: 89: 86: 83: 79: 64: 60: 56: 54: 50: 44: 40: 33: 19: 3001:file systems 2893:Time-sharing 2142: 2123: 2109: 1839:Linux kernel 1757:Tomoyo Linux 1665: 1352:File systems 1007: 959:SCO disputes 920:Organization 913:Linux kernel 878: 866:. Retrieved 852: 843: 834: 822:. Retrieved 808: 796:. Retrieved 791: 782: 770:. Retrieved 765: 756: 744:. Retrieved 739: 730: 718:. Retrieved 713: 704: 692:. Retrieved 678: 666:. Retrieved 664:. p. 12 661: 648: 636:. Retrieved 622: 610:. Retrieved 596: 586:December 23, 584:. Retrieved 580: 570: 558:. Retrieved 525:. Retrieved 496:. Retrieved 467:. Retrieved 415:Linux portal 374: 370:block device 367: 360: 357:Alternatives 352: 349: 342: 335: 309: 308: 283: 260:accelerators 249: 241:memory pages 236: 235:provided by 226: 209:Flash memory 195:, including 190: 166:memory pages 147:Linux kernel 142: 141: 76:(Linux 3.11) 53:Developer(s) 43: 3019:Device file 3009:Boot loader 2923:Round-robin 2848:Cooperative 2784:Rump kernel 2774:Multikernel 2764:Microkernel 2661:Usage share 2491:Memory leak 1844:Linux-libre 1737:Exec Shield 1616:Framebuffer 1319:Video4Linux 1176:System Call 1004:Developers 944:Linus's law 772:January 22, 694:February 5, 638:February 5, 560:January 22, 527:February 5, 498:January 31, 469:January 22, 245:page faults 174:memory pool 170:compression 3122:Categories 2949:protection 2905:algorithms 2903:Scheduling 2852:Preemptive 2798:Components 2769:Monolithic 2636:Comparison 2255:Page table 1931:Hypervisor 1893:PREEMPT_RT 1798:KernelCare 1786:Raw device 1716:SCHED_FIFO 1626:KMS driver 1543:Components 1398:securityfs 1284:Crypto API 1226:Linux-only 1112:System.map 1015:kernel.org 974:menuconfig 969:GNU GPL v2 818:kernel.org 746:January 5, 720:January 5, 688:kernel.org 668:August 19, 632:kernel.org 554:kernel.org 439:References 428:Linux swap 290:parameter 256:crypto API 217:swap space 213:its nature 151:write-back 81:Written in 72:2013-09-02 3039:Partition 2956:Bus error 2883:Real-time 2863:Interrupt 2789:Unikernel 2754:Exokernel 2402:Finalizer 2283:Real mode 2070:LYME-LYCE 1793:initramfs 1762:Linux PAM 1631:Netfilter 1501:libcgroup 1467:libhybris 1439:libraries 1387:hugetlbfs 1338:Userspace 1271:In-kernel 1256:readahead 1178:Interface 1127:initramfs 1084:SystemTap 1057:Debugging 1050:Technical 989:Criticism 740:gmane.org 714:gmane.org 612:March 26, 581:gmane.org 237:frontswap 223:Internals 3085:Live USB 2947:resource 2837:Concepts 2675:Variants 2656:Timeline 2336:ptmalloc 2331:mimalloc 2321:jemalloc 2311:dlmalloc 2207:Hardware 2144:Category 2086:Adopters 2061:Server: 2042:Embedded 2018:Adoption 1911:PSXLinux 1834:Mainline 1827:Variants 1779:graphics 1732:AppArmor 1721:SCHED_RR 1641:nftables 1585:dm-crypt 1580:dm-cache 1526:liburing 1516:libevdev 1474:dietlibc 1363:configfs 1289:io uring 868:March 8, 824:June 15, 798:June 15, 522:Phoronix 387:See also 377:eviction 338:codebase 326:allocate 201:netbooks 3080:Live CD 3034:Journal 2998:access, 2996:Storage 2873:Process 2779:vkernel 2646:History 2629:General 2407:Garbage 2326:libumem 2228:(IOMMU) 2077:Devices 2037:Desktop 1998:coLinux 1993:MkLinux 1978:L4Linux 1906:ÎĽClinux 1888:Xenomai 1878:RTLinux 1818:Ksplice 1747:SELinux 1742:seccomp 1692:(EEVDF) 1636:Netlink 1565:Console 1560:cgroups 1511:libalsa 1437:Wrapper 1415:systemd 1378:debugfs 1347:Daemons 1309:New API 1251:inotify 1246:dnotify 1150:x32 ABI 1107:vmlinux 1099:Startup 998:Support 863:LWN.net 607:LWN.net 464:LWN.net 332:History 322:buddies 300:evicted 252:modules 158:swapped 127:Website 121:GNU GPL 116:License 70: ( 2888:Thread 2759:Hybrid 2737:Kernel 2479:Issues 2047:Gaming 2029:of use 1983:ELinOS 1974:Other 1968:OpenVZ 1958:Lguest 1902:-less 1813:kpatch 1808:kGraft 1774:802.11 1570:bcache 1521:libusb 1506:libdrm 1494:Newlib 1479:EGLIBC 1462:Bionic 1457:uClibc 1427:Kmscon 1401:sockfs 1394:procfs 1390:pipefs 1373:devpts 1299:kernfs 1241:splice 1196:select 1168:Kernel 1122:initrd 1117:dracut 1069:ftrace 1031:Users 964:Linaro 927:Kernel 844:GitHub 318:Oracle 132:kernel 18:Zcache 3090:Shell 3029:Inode 2505:Other 2316:Hoard 2222:(TLB) 2216:(MMU) 2027:Range 1866:SLURM 1803:kexec 1752:Smack 1686:(CFS) 1666:zswap 1607:(KSM) 1600:evdev 1555:BlueZ 1484:klibc 1452:glibc 1410:tmpfs 1405:sysfs 1368:devfs 1359:bpffs 1236:epoll 1231:futex 1211:close 1191:ioctl 1186:POSIX 1074:kdump 658:(PDF) 287:sysfs 154:cache 145:is a 143:zswap 97:Linux 47:zswap 32:Zcash 2651:List 2065:LAMP 2055:LTSP 1883:RTAI 1661:zram 1656:SLUB 1651:perf 1595:EDAC 1489:musl 1420:udev 1383:FUSE 1279:ALSA 1216:sync 1206:read 1201:open 1160:APIs 1137:ABIs 1064:CRIU 1020:LKML 870:2014 826:2014 800:2014 774:2014 748:2014 722:2014 696:2014 670:2015 640:2014 614:2014 588:2014 562:2014 529:2014 500:2014 471:2014 363:zram 310:zbud 156:for 134:.org 104:Type 39:zram 3107:PXE 3095:CLI 3075:HAL 3065:API 2868:IPC 1963:LXC 1941:Xen 1936:KVM 1900:MMU 1856:INK 1621:LVM 1611:LIO 1590:DRM 1324:IIO 1314:RCU 1294:DRM 1089:BPF 954:Tux 493:IBM 233:API 186:CPU 182:I/O 178:RAM 3124:: 2850:, 1730:: 861:. 842:. 816:. 790:. 764:. 738:. 712:. 686:. 660:. 630:. 605:. 579:. 552:. 537:^ 520:. 508:^ 491:. 479:^ 462:. 446:^ 281:. 199:, 2944:, 2854:) 2846:( 2614:e 2607:t 2600:v 2179:e 2172:t 2165:v 1675:: 1349:, 1260:… 1220:… 905:e 898:t 891:v 872:. 846:. 828:. 802:. 776:. 750:. 724:. 698:. 672:. 642:. 616:. 590:. 564:. 531:. 502:. 473:. 275:1 85:C 74:) 41:. 34:. 20:)

Index

Zcache
Zcash
zram
Developer(s)
C
Operating system
Linux
Type
Linux kernel features
License
GNU GPL
kernel.org
Linux kernel
write-back
cache
swapped
virtual memory compression
memory pages
compression
memory pool
RAM
I/O
CPU
flash-based storage
embedded devices
netbooks
solid-state drives
Flash memory
its nature
swap space

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑