1:"$Sreact.fragment" 2:I[9766,[],""] 3:I[98924,[],""] 5:I[27346,["316","static/chunks/ad2866b8-635304a38afc0b68.js","239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","869","static/chunks/869-f328dfc4a7854a42.js","217","static/chunks/217-b882ca4bd6228d18.js","531","static/chunks/531-c61cd8adb4f12f15.js","368","static/chunks/368-fb0c58a608326176.js","309","static/chunks/app/%5Blang%5D/docs/%5B%5B...slug%5D%5D/page-a405d0666d803277.js"],"ScrollArea"] 6:I[29505,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"default"] 8:I[24431,[],"OutletBoundary"] a:I[15278,[],"AsyncMetadataOutlet"] c:I[24431,[],"ViewportBoundary"] e:I[24431,[],"MetadataBoundary"] f:"$Sreact.suspense" 11:I[57150,[],""] :HL["/_next/static/css/c9fbdf6b51c9cc9f.css","style"] 0:{"P":null,"b":"FATp18w24-oXdWnXMc_-_","p":"","c":["","en","docs","getting-started","test"],"i":false,"f":[[["",{"children":[["lang","en","d"],{"children":["docs",{"children":[["slug","getting-started/test","oc"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true]}],["",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["lang","en","d"],["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c9fbdf6b51c9cc9f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L4"]}],{"children":["docs",["$","$1","c",{"children":[null,["$","div",null,{"className":"flex items-start gap-8","children":[["$","aside","leftbar",{"className":"md:flex hidden flex-[1.5] min-w-[238px] sticky top-16 flex-col h-[93.75vh] overflow-y-auto","children":["$","$L5",null,{"className":"py-4","children":["$","$L6",null,{}]}]}],["$","div",null,{"className":"flex-[6]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["slug","getting-started/test","oc"],["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true} 12:I[97397,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","160","static/chunks/app/%5Blang%5D/layout-91542d54d0202719.js"],"ClientDictionary"] 4:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_6f2fcd __variable_33c22e font-regular antialiased tracking-wide","suppressHydrationWarning":true,"children":["$","$L12",null,{"dict":{"metadata":{"title":"USM: High Velocity Linux Memory Manager Development","description":"Craft custom, high-performance memory policies in userspace without touching the kernel. USM is a framework for the rapid development of memory management policies in Linux."},"home":{"follow_github":"Star us on GitHub","main_header":"USM: High Velocity Linux Memory Manager Development","sub_header":"Craft custom, high-performance memory policies without touching the kernel. Go from idea to implementation in hours, not months, solving real-world bottlenecks like fragmentation and suboptimal caching.","get_started":"Get Started","see_the_why":"See the Showcase","problem_title":"The Problem: A 'One-Size-Fits-All' Kernel","problem_subtitle":"The general-purpose Linux Memory Manager isn't optimized for specialized workloads, leading to performance spikes, memory fragmentation, and instability under pressure.","solution_title":"The Solution: A Microkernel-Inspired Architecture","solution_subtitle":"USM solves this by moving memory management policy into an isolated userspace process, leaving only a minimal, safe mechanism in the kernel. This allows for rapid, safe development of application-aware strategies.","aha_title":"This is a Complete Memory Allocator","aha_subtitle":"Writing a memory policy is now as simple as implementing a C function. Below is a complete, working 'first-fit' allocator."},"contributors":{"title":"Contributors","subtitle":"Meet the team contributing to the USM project."},"contact":{"title":"Contact Us","subtitle":"Get in touch with the project supervisors.","alain_tchana_role":"Professor, Ensimag - Grenoble INP - UGA","papa_assane_fall_role":"Researcher, Inria"},"navbar":{"search":{"search_documentation":"Search documentation...","no_results_found":"No results found for","type_something":"Type something to search..."},"theme":{"light":"Light","dark":"Dark","system":"System"},"links":{"documentation":"Documentation","guides":"Guides","contact":"Contact","contributors":"Contributors","blog":"Blog","community":"Community"}},"blog":{"title":"USM Blog","sub_title":"Updates, deep dives, and news from the USM team.","published_on":"Published on","posted_by":"Posted by","back_to_blog":"Back to Blog"},"footer":{"built_by":"Built by","source_code_available":"The source code is available on","deploy":"Deploy","sponsor":"Sponsor"},"docs":{"on_this_page":"On this page","previous":"Previous","next":"Next"},"leftbar":{"getting_started":"Getting Started","introduction":"Introduction","core_concepts":"Core Concepts","test":"Tests","environment_setup":"Environment Setup","guides":"Guides","first_allocation_policy":"Your First Allocation Policy","first_eviction_policy":"Your First Eviction Policy","Christine":"Coordinative Scheduling with Christine","PTEMagnet":"PTEMagnet as a USM Policy","advanced_policies":"Advanced Policies","api_reference":"API Reference","api_policy_ops":"Policy Interfaces (_ops)","api_data_structures":"Data Structures","api_configuration_file":"Configuration File","community":"Community","contributing":"Contributing","roadmap":"Roadmap","using_media":"DEV: Adding Media (Images & Videos)","tools":"Tools","process_visualizer":"USM Visualizer","visualizer":{"launch":"Run","placeholder":"Enter command (e.g. ./littleTest 8)"}},"error":{"oops":"Oops!","something_went_wrong":"Something went wrong","sub_text":"An unexpected error occurred. Please try again later.","reload_page":"Reload Page","back_to_homepage":"Back to Homepage"},"not_found":{"404":"404","page_not_found":"Page Not Found","sub_text":"The page you are looking for does not exist.","back_to_homepage":"Back to Homepage","go_back":"Go Back"}},"children":"$L13"}]}]}] 14:I[30358,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","160","static/chunks/app/%5Blang%5D/layout-91542d54d0202719.js"],"ThemeProvider"] 15:I[31856,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"Sheet"] 16:I[31856,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"SheetTrigger"] 17:I[31856,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"SheetContent"] 18:I[54679,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"DialogTitle"] 19:I[31856,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"SheetHeader"] 1a:I[31856,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"SheetClose"] 1b:I[79191,["316","static/chunks/ad2866b8-635304a38afc0b68.js","239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","869","static/chunks/869-f328dfc4a7854a42.js","217","static/chunks/217-b882ca4bd6228d18.js","531","static/chunks/531-c61cd8adb4f12f15.js","368","static/chunks/368-fb0c58a608326176.js","309","static/chunks/app/%5Blang%5D/docs/%5B%5B...slug%5D%5D/page-a405d0666d803277.js"],"default"] 1c:I[52619,["316","static/chunks/ad2866b8-635304a38afc0b68.js","239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","869","static/chunks/869-f328dfc4a7854a42.js","217","static/chunks/217-b882ca4bd6228d18.js","531","static/chunks/531-c61cd8adb4f12f15.js","368","static/chunks/368-fb0c58a608326176.js","309","static/chunks/app/%5Blang%5D/docs/%5B%5B...slug%5D%5D/page-a405d0666d803277.js"],""] 13:["$","$L14",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":[["$","nav",null,{"className":"w-full border-b h-16 sticky top-0 z-50 bg-background/95 backdrop-blur-sm","children":["$","div",null,{"className":"sm:container mx-auto w-[95vw] h-full flex items-center justify-between","children":[["$","div",null,{"className":"flex items-center gap-4","children":[["$","div",null,{"className":"md:hidden","children":["$","$L15",null,{"children":[["$","$L16",null,{"asChild":true,"children":["$","button",null,{"className":"items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-9 w-9 flex","ref":"$undefined","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-align-left","children":[["$","line","1fp77t",{"x1":"21","x2":"3","y1":"6","y2":"6"}],["$","line","v6grx8",{"x1":"15","x2":"3","y1":"12","y2":"12"}],["$","line","1awlsn",{"x1":"17","x2":"3","y1":"18","y2":"18"}],"$undefined"]}]}]}],["$","$L17",null,{"className":"flex flex-col gap-4 px-0","side":"left","children":[["$","$L18",null,{"className":"sr-only","children":"Menu"}],["$","$L19",null,{"children":["$","$L1a",null,{"className":"px-5","asChild":true,"children":["$","$L1b",null,{"href":"/","className":"flex items-center gap-2.5","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":1.5,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-cpu w-6 h-6 text-muted-foreground","children":[["$","rect","14l7u7",{"width":"16","height":"16","x":"4","y":"4","rx":"2"}],["$","rect","5aljv4",{"width":"6","height":"6","x":"9","y":"9","rx":"1"}],["$","path","13l42r",{"d":"M15 2v2"}],["$","path","15mkzm",{"d":"M15 20v2"}],["$","path","1gxd5l",{"d":"M2 15h2"}],["$","path","1bbxkp",{"d":"M2 9h2"}],["$","path","19e6y8",{"d":"M20 15h2"}],["$","path","19tzq7",{"d":"M20 9h2"}],["$","path","165o2o",{"d":"M9 2v2"}],["$","path","i2bqo8",{"d":"M9 20v2"}],"$undefined"]}],["$","h2",null,{"className":"text-md font-bold font-code","children":"USM Docs"}]]}]}]}],["$","div",null,{"className":"flex flex-col gap-4 overflow-y-auto","children":[["$","div",null,{"className":"flex flex-col gap-2.5 mt-3 mx-2 px-5","children":[["$","$L1a","documentation/docs/getting-started/introduction",{"asChild":true,"children":["$","$L1b","documentation/docs/getting-started/introduction",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/docs/getting-started/introduction","absolute":true,"children":"Documentation"}]}],["$","$L1a","guides/docs/guides/first-allocation-policy",{"asChild":true,"children":["$","$L1b","guides/docs/guides/first-allocation-policy",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/docs/guides/first-allocation-policy","absolute":"$undefined","children":"Guides"}]}],["$","$L1a","contact/contact",{"asChild":true,"children":["$","$L1b","contact/contact",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/contact","absolute":"$undefined","children":"Contact"}]}],["$","$L1a","contributors/contributors",{"asChild":true,"children":["$","$L1b","contributors/contributors",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/contributors","absolute":"$undefined","children":"Contributors"}]}],["$","$L1a","blog/blog",{"asChild":true,"children":["$","$L1b","blog/blog",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/blog","absolute":"$undefined","children":"Blog"}]}]]}],["$","div",null,{"className":"mx-2 px-5","children":["$","$L6",null,{"isSheet":true}]}],["$","div",null,{"className":"p-6 pb-4 flex gap-2.5","children":["$","$L1c",null,{"href":"https://github.com/sponsors/todo-repo","className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3","children":["$L1d","Sponsor"]}]}]]}]]}]]}]}],"$L1e","$L1f"]}],"$L20"]}]}],"$L21","$L22"]}] 23:I[55854,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"default"] 24:I[53047,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"default"] 25:I[53990,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","531","static/chunks/531-c61cd8adb4f12f15.js","515","static/chunks/515-158a157ad3fe69ad.js","841","static/chunks/841-fbf5ef0791d48d49.js","812","static/chunks/app/%5Blang%5D/docs/layout-4ad3aa5dc32b2744.js"],"ModeToggle"] 26:I[18032,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","48","static/chunks/app/%5Blang%5D/error-f455d4961d40cd2c.js"],"default"] 27:I[33774,["239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","226","static/chunks/app/%5Blang%5D/not-found-bf7b0c977c712ed0.js"],"default"] 1d:["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-heart h-4 w-4 mr-2 text-red-600 fill-current","children":[["$","path","c3ymky",{"d":"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"}],"$undefined"]}] 1e:["$","$L1b",null,{"href":"/","className":"flex items-center gap-2.5","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":1.5,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-cpu w-6 h-6 text-muted-foreground","children":[["$","rect","14l7u7",{"width":"16","height":"16","x":"4","y":"4","rx":"2"}],["$","rect","5aljv4",{"width":"6","height":"6","x":"9","y":"9","rx":"1"}],["$","path","13l42r",{"d":"M15 2v2"}],["$","path","15mkzm",{"d":"M15 20v2"}],["$","path","1gxd5l",{"d":"M2 15h2"}],["$","path","1bbxkp",{"d":"M2 9h2"}],["$","path","19e6y8",{"d":"M20 15h2"}],["$","path","19tzq7",{"d":"M20 9h2"}],["$","path","165o2o",{"d":"M9 2v2"}],["$","path","i2bqo8",{"d":"M9 20v2"}],"$undefined"]}],["$","h2",null,{"className":"text-md font-bold font-code","children":"USM Docs"}]]}] 1f:["$","div",null,{"className":"hidden md:flex items-center gap-5 text-sm font-medium text-muted-foreground","children":[["$","$L1b","documentation/docs/getting-started/introduction",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/docs/getting-started/introduction","absolute":true,"children":"Documentation"}],["$","$L1b","guides/docs/guides/first-allocation-policy",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/docs/guides/first-allocation-policy","absolute":"$undefined","children":"Guides"}],["$","$L1b","contact/contact",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/contact","absolute":"$undefined","children":"Contact"}],["$","$L1b","contributors/contributors",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/contributors","absolute":"$undefined","children":"Contributors"}],["$","$L1b","blog/blog",{"className":"flex items-center gap-1 hover:text-primary transition-colors","activeClassName":"text-primary dark:font-medium font-semibold","href":"/blog","absolute":"$undefined","children":"Blog"}]]}] 20:["$","div",null,{"className":"flex items-center gap-3","children":[["$","$L23",null,{"dict":"$4:props:children:props:children:props:dict"}],["$","div",null,{"className":"flex items-center","children":[["$","$L24",null,{}],["$","$L1c",null,{"href":"https://github.com/todo-repo/usm","target":"_blank","className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-9 w-9","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github h-[1.1rem] w-[1.1rem]","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}]}],["$","$L25",null,{"dict":"$4:props:children:props:children:props:dict"}]]}]]}] 21:["$","main",null,{"className":"sm:container mx-auto h-auto scroll-smooth","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$26","errorStyles":[],"errorScripts":[],"template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L27",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}] 22:["$","footer",null,{"className":"border-t w-full h-16","children":["$","div",null,{"className":"container flex items-center sm:justify-between justify-center sm:gap-0 gap-4 h-full text-muted-foreground text-sm flex-wrap sm:py-0 py-3 max-sm:px-4","children":[["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-cpu sm:block hidden w-5 h-5 text-muted-foreground","children":[["$","rect","14l7u7",{"width":"16","height":"16","x":"4","y":"4","rx":"2"}],["$","rect","5aljv4",{"width":"6","height":"6","x":"9","y":"9","rx":"1"}],["$","path","13l42r",{"d":"M15 2v2"}],["$","path","15mkzm",{"d":"M15 20v2"}],["$","path","1gxd5l",{"d":"M2 15h2"}],["$","path","1bbxkp",{"d":"M2 9h2"}],["$","path","19e6y8",{"d":"M20 15h2"}],["$","path","19tzq7",{"d":"M20 9h2"}],["$","path","165o2o",{"d":"M9 2v2"}],["$","path","i2bqo8",{"d":"M9 20v2"}],"$undefined"]}],["$","p",null,{"className":"text-center","children":["Built by"," ",["$","$L1c",null,{"className":"px-1 underline underline-offset-2","href":"/contact","target":"_blank","children":"Researchers"}],". ","The source code is available on"," ",["$","$L1c",null,{"className":"px-1 underline underline-offset-2","href":"https://github.com/HTester4/flusm.git","target":"_blank","children":"GitHub"}],"."]}]]}],["$","div",null,{"className":"gap-4 items-center hidden md:flex","children":["$","$L1c",null,{"href":"https://github.com/sponsors/todo-repo","className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-heart h-4 w-4 mr-2 text-red-600 fill-current","children":[["$","path","c3ymky",{"d":"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"}],"$undefined"]}],"Sponsor"]}]}]]}]}] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 9:null 28:I[21771,["316","static/chunks/ad2866b8-635304a38afc0b68.js","239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","869","static/chunks/869-f328dfc4a7854a42.js","217","static/chunks/217-b882ca4bd6228d18.js","531","static/chunks/531-c61cd8adb4f12f15.js","368","static/chunks/368-fb0c58a608326176.js","309","static/chunks/app/%5Blang%5D/docs/%5B%5B...slug%5D%5D/page-a405d0666d803277.js"],"default"] 7:["$","div",null,{"className":"flex items-start gap-10","children":[["$","div",null,{"className":"flex-[5] pt-10","children":["$","div",null,{"className":"prose prose-zinc dark:prose-invert prose-code:font-normal prose-code:font-code dark:prose-code:bg-stone-900/25 prose-code:bg-stone-50 prose-pre:bg-background prose-headings:scroll-m-20 w-[85vw] sm:w-full sm:mx-auto prose-code:text-sm prose-code:leading-6 dark:prose-code:text-white prose-code:text-stone-800 prose-code:p-[0.085rem] prose-code:rounded-md prose-code:border pt-2 !min-w-full prose-img:rounded-md prose-img:border prose-code:before:content-none prose-code:after:content-none prose-code:px-1.5 prose-code:overflow-x-auto !max-w-[500px] prose-img:my-3 prose-h2:my-4 prose-h2:mt-8","children":[["$","h1",null,{"className":"text-3xl !-mt-1.5","children":"USM Test Guide"}],["$","p",null,{"className":"-mt-4 text-muted-foreground text-[16.5px]","children":"Comprehensive guide for executing USM system test phases including memory management, event processing, and process coordination."}],["$","div",null,{"children":[["$","p",null,{"children":"The USM system requires comprehensive testing across three distinct phases to validate memory management capabilities, event processing, and process coordination. This guide provides detailed instructions for executing each test phase."}],"\n",["$","div",null,{"className":"border rounded-md px-5 pb-0.5 mt-5 mb-7 text-sm tracking-wide dark:bg-stone-950/25 bg-stone-50","children":[["$","p",null,{"className":"font-bold -mb-2.5","children":["Note",":"]}]," ",["$","p",null,{"children":"These tests require the USM environment to be fully configured and the kernel module to be successfully loaded. Ensure you have completed the Environment Configuration before proceeding."}]]}],"\n",["$","h2",null,{"id":"phase-1--basic-module-and-memory-testing-littletest","children":[["$","$L1c",null,{"href":"#phase-1--basic-module-and-memory-testing-littletest","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"icon icon-link"}],"target":"_blank","rel":"noopener noreferrer"}],"Phase 1 : Basic Module and Memory Testing (littleTest)"]}],"\n",["$","p",null,{"children":"This initial phase validates the fundamental capabilities of compilation, loading, and basic memory allocation of the USM system."}],"\n",["$","div",null,{"className":"flex flex-col","children":[["$","div",".0",{"className":"border-l pl-9 ml-3 relative pb-5","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":1}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Terminal Configuration"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":"For comprehensive monitoring and testing, you will need 4 terminals:"}],["$","p",null,{"children":["$","strong",null,{"children":"Terminal 1 - System Monitoring :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"watch -n 1 'echo \"=== USM Module Status ===\" && lsmod | grep usm && echo && echo \"=== Memory Status ===\" && cat /proc/meminfo | grep -E \"(MemFree|MemAvailable|CmaTotal|CmaFree)\" && echo && echo \"=== USM Interfaces ===\" && ls -la /proc/usm* 2>/dev/null || echo \"No USM interfaces\" && echo && echo \"=== Time: $(date) ===\"'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"watch"}]," ","$L29"," ","$L2a"," ","$L2b","\n"]}]}]}]}]]}],"$L2c","$L2d","$L2e","$L2f","$L30","$L31"]}]}]]}]]}],"$L32"]}],"\n","$L33","\n","$L34","\n","$L35","\n","$L36","\n","$L37","\n","$L38"]}],"$L39","$L3a"]}]}],"$L3b"]}] 4a:I[80622,[],"IconMark"] 29:["$","span",null,{"className":"token parameter variable","children":"-n"}] 2a:["$","span",null,{"className":"token number","children":"1"}] 2b:["$","span",null,{"className":"token string","children":"'echo \"=== USM Module Status ===\" && lsmod | grep usm && echo && echo \"=== Memory Status ===\" && cat /proc/meminfo | grep -E \"(MemFree|MemAvailable|CmaTotal|CmaFree)\" && echo && echo \"=== USM Interfaces ===\" && ls -la /proc/usm* 2>/dev/null || echo \"No USM interfaces\" && echo && echo \"=== Time: $(date) ===\"'"}] 2c:["$","p",null,{"children":["$","strong",null,{"children":"Terminal 2 - Kernel Log Monitoring :"}]}] 2d:["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"sudo dmesg -wT | grep -E --color=always '(USM|usm|Yo|vmalloc|dma_alloc|Instance.*obliterated|Linking|mapcount|refcount)'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"dmesg"}]," ",["$","span",null,{"className":"token parameter variable","children":"-wT"}]," ",["$","span",null,{"className":"token operator","children":"|"}]," ",["$","span",null,{"className":"token function","children":"grep"}]," ",["$","span",null,{"className":"token parameter variable","children":"-E"}]," ",["$","span",null,{"className":"token parameter variable","children":"--color"}],["$","span",null,{"className":"token operator","children":"="}],"always ",["$","span",null,{"className":"token string","children":"'(USM|usm|Yo|vmalloc|dma_alloc|Instance.*obliterated|Linking|mapcount|refcount)'"}],"\n"]}]}]}]}]]}] 2e:["$","p",null,{"children":["$","strong",null,{"children":"Terminal 3 - Memory Allocator :"}]}] 2f:["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd flusm/Userspace\r\n# Kill existing processes\r\nsudo pkill -f project-2 2>/dev/null || true\r\n# Launch the allocator\r\nsudo ./APIv/project-2 APIv/examples/project-2/cfg/loc_alloc_policy_assignment_strategy.cfg\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Kill existing processes"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"pkill"}]," ",["$","span",null,{"className":"token parameter variable","children":"-f"}]," project-2 ",["$","span",null,{"className":"token operator","children":[["$","span",null,{"className":"token file-descriptor important","children":"2"}],">"]}],"/dev/null ",["$","span",null,{"className":"token operator","children":"||"}]," ",["$","span",null,{"className":"token boolean","children":"true"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Launch the allocator"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ./APIv/project-2 APIv/examples/project-2/cfg/loc_alloc_policy_assignment_strategy.cfg\n"]}]]}]}]}]]}] 30:["$","p",null,{"children":["$","strong",null,{"children":"Terminal 4 - Basic Test Execution :"}]}] 31:["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd flusm/Userspace\r\n# Exécuter littleTest basique\r\nsudo LD_PRELOAD=./usmTagger ./littleTest 8\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Exécuter littleTest basique"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTest ",["$","span",null,{"className":"token number","children":"8"}],"\n"]}]]}]}]}]]}] 32:["$","div",".1",{"className":"border-l pl-9 ml-3 relative","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":2}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Test 1.3 : Basic Functionality"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":[["$","strong",null,{"children":"Objective :"}]," Validate that the basic littleTest executes correctly and interacts with the USM system."]}],["$","p",null,{"children":["$","strong",null,{"children":"Execution Commands :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd flusm/Userspace\r\nsudo LD_PRELOAD=./usmTagger ./littleTest 8\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTest ",["$","span",null,{"className":"token number","children":"8"}],"\n"]}]]}]}]}]]}],["$","p",null,{"children":["$","strong",null,{"children":"Success Indicators:"}]}],["$","ul",null,{"children":["\n",["$","li",null,{"children":"The module loads successfully with the message \"Yo! #USMRM\""}],"\n",["$","li",null,{"children":"Memory allocation falls back to vmalloc if CMA is limited"}],"\n",["$","li",null,{"children":["Interfaces are created in ",["$","code",null,{"children":"/proc/usm*"}]," and ",["$","code",null,{"children":"/dev/USMMcd"}]]}],"\n",["$","li",null,{"children":"Basic memory operations function correctly"}],"\n"]}],["$","p",null,{"children":[["$","strong",null,{"children":"Result :"}]," ",["$","strong",null,{"children":"PASSED"}],". The basic test demonstrates the fundamental functionality of the USM system."]}],["$","div",null,{"className":"my-6 border bg-background rounded-lg overflow-hidden shadow-md","children":[["$","div",null,{"className":"bg-muted px-4 py-2 flex items-center gap-2 border-b","children":[["$","div",null,{"className":"flex items-center gap-1.5","children":[["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}]]}],["$","div",null,{"className":"flex-grow text-center text-sm text-muted-foreground font-mono capitalize","children":"littleTest: Basic Module and Memory Testing (littleTest)"}]]}],["$","video",null,{"src":"/videos/Test/littletest.webm","poster":"$undefined","controls":true,"muted":true,"autoPlay":false,"loop":false,"playsInline":true,"className":"w-full h-auto bg-black"}]]}]]}]}]]}]]}] 33:["$","h2",null,{"id":"phase-2--event-processing-and-process-coordination-littletestevents","children":[["$","$L1c",null,{"href":"#phase-2--event-processing-and-process-coordination-littletestevents","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"icon icon-link"}],"target":"_blank","rel":"noopener noreferrer"}],"Phase 2 : Event Processing and Process Coordination (littleTestEvents)"]}] 34:["$","p",null,{"children":"This phase tests the USM system's ability to handle complex memory events and coordinate between multiple processes."}] 35:["$","div",null,{"className":"flex flex-col","children":[["$","div",".0",{"className":"border-l pl-9 ml-3 relative pb-5","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":1}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Phase 2 Terminal Configuration"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":["$","strong",null,{"children":"Terminal 1 - Monitoring d'Événements :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"watch -n 0.5 'echo \"=== USM Events Status ===\" && echo \"CMA: $(cat /proc/meminfo | grep CmaFree | awk \"{print \\$2}\") kB\" && echo \"Processes: $(ps aux | grep -c project-2)\" && echo \"Workers: $(ps aux | grep -E \"(Worker|memWorker)\" | wc -l)\" && echo && echo \"=== Recent Events ===\" && sudo dmesg | tail -5 | grep -i usm || echo \"No recent USM events\"'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"watch"}]," ",["$","span",null,{"className":"token parameter variable","children":"-n"}]," ",["$","span",null,{"className":"token number","children":"0.5"}]," ",["$","span",null,{"className":"token string","children":"'echo \"=== USM Events Status ===\" && echo \"CMA: $(cat /proc/meminfo | grep CmaFree | awk \"{print \\$2}\") kB\" && echo \"Processes: $(ps aux | grep -c project-2)\" && echo \"Workers: $(ps aux | grep -E \"(Worker|memWorker)\" | wc -l)\" && echo && echo \"=== Recent Events ===\" && sudo dmesg | tail -5 | grep -i usm || echo \"No recent USM events\"'"}],"\n"]}]}]}]}]]}],["$","p",null,{"children":["$","strong",null,{"children":"Terminal 2 - Worker and Event Logs :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"sudo dmesg -wT | grep -E --color=always 'Worker|memWorker|bravoZero|processesReceiver|Channel|Legacy|state|Conf|obliterated|Linking'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"dmesg"}]," ",["$","span",null,{"className":"token parameter variable","children":"-wT"}]," ",["$","span",null,{"className":"token operator","children":"|"}]," ",["$","span",null,{"className":"token function","children":"grep"}]," ",["$","span",null,{"className":"token parameter variable","children":"-E"}]," ",["$","span",null,{"className":"token parameter variable","children":"--color"}],["$","span",null,{"className":"token operator","children":"="}],"always ",["$","span",null,{"className":"token string","children":"'Worker|memWorker|bravoZero|processesReceiver|Channel|Legacy|state|Conf|obliterated|Linking'"}],"\n"]}]}]}]}]]}],["$","p",null,{"children":["$","strong",null,{"children":"Terminal 3 - Memory Allocator :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd ~/your_path/flusm/Userspace\r\n# Kill existing processes\r\nsudo pkill -f project-2 2>/dev/null || true\r\n# Launch the allocator\r\nsudo ./APIv/project-2 test_4mb.cfg\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$L3c","$L3d","$L3e","$L3f","$L40"]}]}]}]]}],"$L41","$L42"]}]}]]}]]}],"$L43"]}] 36:["$","h2",null,{"id":"phase-3--process-forking-and-multi-process-management-littletestfork","children":[["$","$L1c",null,{"href":"#phase-3--process-forking-and-multi-process-management-littletestfork","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"icon icon-link"}],"target":"_blank","rel":"noopener noreferrer"}],"Phase 3 : Process Forking and Multi-Process Management (littleTestFork)"]}] 37:["$","p",null,{"children":"This final phase validates USM's management of process creation, inheritance, and complex multi-process scenarios."}] 38:["$","div",null,{"className":"flex flex-col","children":[["$","div",".0",{"className":"border-l pl-9 ml-3 relative pb-5","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":1}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Phase 3 Terminal Configuration"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":["$","strong",null,{"children":"Terminal 1 - Process Tree Monitoring :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"watch -n 0.5 'echo \"=== littleTestFork Process Monitoring ===\" && echo \"Time: $(date)\" && echo && echo \"Process Tree USM:\" && pstree -p | grep -E \"(project-2|littleTest)\" 2>/dev/null || echo \"No USM processes\" && echo && echo \"Active USM Processes:\" && ps aux | grep -E \"(project-2|littleTest)\" | grep -v grep | wc -l && echo && echo \"CMA Status:\" && cat /proc/meminfo | grep CmaFree && echo && echo \"Recent Fork Events:\" && sudo dmesg | tail -3 | grep -E \"(fork|sleeper|waker)\" 2>/dev/null || echo \"No recent fork events\"'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"watch"}]," ",["$","span",null,{"className":"token parameter variable","children":"-n"}]," ",["$","span",null,{"className":"token number","children":"0.5"}]," ",["$","span",null,{"className":"token string","children":"'echo \"=== littleTestFork Process Monitoring ===\" && echo \"Time: $(date)\" && echo && echo \"Process Tree USM:\" && pstree -p | grep -E \"(project-2|littleTest)\" 2>/dev/null || echo \"No USM processes\" && echo && echo \"Active USM Processes:\" && ps aux | grep -E \"(project-2|littleTest)\" | grep -v grep | wc -l && echo && echo \"CMA Status:\" && cat /proc/meminfo | grep CmaFree && echo && echo \"Recent Fork Events:\" && sudo dmesg | tail -3 | grep -E \"(fork|sleeper|waker)\" 2>/dev/null || echo \"No recent fork events\"'"}],"\n"]}]}]}]}]]}],["$","p",null,{"children":["$","strong",null,{"children":"Terminal 2 - Fork and Coordination Logs :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"sudo dmesg -wT | grep -E --color=always 'USM|usm|fork|sleeper|waker|christine|mapcount|refcount|obliterated|Linking|Child|Parent|PID|PPID'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"dmesg"}]," ",["$","span",null,{"className":"token parameter variable","children":"-wT"}]," ",["$","span",null,{"className":"token operator","children":"|"}]," ",["$","span",null,{"className":"token function","children":"grep"}]," ",["$","span",null,{"className":"token parameter variable","children":"-E"}]," ",["$","span",null,{"className":"token parameter variable","children":"--color"}],["$","span",null,{"className":"token operator","children":"="}],"always ",["$","span",null,{"className":"token string","children":"'USM|usm|fork|sleeper|waker|christine|mapcount|refcount|obliterated|Linking|Child|Parent|PID|PPID'"}],"\n"]}]}]}]}]]}],["$","p",null,{"children":["$","strong",null,{"children":"Terminal 3 - Allocator and Waker :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":"$L44"}],"$L45"]}],"$L46","$L47"]}]}]]}]]}],"$L48","$L49"]}] 39:["$","div",null,{"className":"mt-8 pt-6 border-t","children":["$","$L1c",null,{"href":"https://github.com/lado-saha/usm-docs/tree/main/contents/docs/en/getting-started/test/index.mdx","target":"_blank","rel":"noopener noreferrer","className":"text-sm text-muted-foreground hover:text-primary transition-colors flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-pencil w-4 h-4","children":[["$","path","1a8usu",{"d":"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["$","path","1mk7zo",{"d":"m15 5 4 4"}],"$undefined"]}],"Edit this page on GitHub"]}]}] 3a:["$","div",null,{"className":"grid grid-cols-2 flex-grow sm:py-10 py-7 gap-3","children":[["$","div",null,{"children":["$","$L1b",null,{"className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 no-underline w-full flex flex-col pl-3 !py-8 !items-start","href":"/docs/getting-started/environment-setup","children":[["$","span",null,{"className":"flex items-center text-muted-foreground text-xs","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-left w-[1rem] h-[1rem] mr-1","children":[["$","path","1wnfg3",{"d":"m15 18-6-6 6-6"}],"$undefined"]}],"Previous"]}],["$","span",null,{"className":"mt-1 ml-1","children":"Environment Setup"}]]}]}],["$","div",null,{"children":["$","$L1b",null,{"className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 no-underline w-full flex flex-col pr-3 !py-8 !items-end","href":"/docs/guides/first-allocation-policy","children":[["$","span",null,{"className":"flex items-center text-muted-foreground text-xs","children":["Next",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right w-[1rem] h-[1rem] ml-1","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}]]}],["$","span",null,{"className":"mt-1 mr-1","children":"Your First Allocation Policy"}]]}]}]]}] b:{"metadata":[["$","title","0",{"children":"USM Test Guide"}],["$","meta","1",{"name":"description","content":"Comprehensive guide for executing USM system test phases including memory management, event processing, and process coordination."}],["$","meta","2",{"property":"og:title","content":"USM: High Velocity Linux Memory Manager Development"}],["$","meta","3",{"property":"og:description","content":"Craft custom, high-performance memory policies in userspace without touching the kernel. USM is a framework for the rapid development of memory management policies in Linux."}],["$","meta","4",{"property":"og:site_name","content":"USM Docs"}],["$","meta","5",{"property":"og:locale","content":"en"}],["$","meta","6",{"property":"og:image:type","content":"image/jpeg"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:image","content":"http://localhost:3000/opengraph-image.jpg?1f4cd24de62e2382"}],["$","meta","10",{"property":"og:type","content":"website"}],["$","meta","11",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","12",{"name":"twitter:title","content":"USM: High Velocity Linux Memory Manager Development"}],["$","meta","13",{"name":"twitter:description","content":"Craft custom, high-performance memory policies in userspace without touching the kernel. USM is a framework for the rapid development of memory management policies in Linux."}],["$","meta","14",{"name":"twitter:image:type","content":"image/jpeg"}],["$","meta","15",{"name":"twitter:image:width","content":"1200"}],["$","meta","16",{"name":"twitter:image:height","content":"630"}],["$","meta","17",{"name":"twitter:image","content":"http://localhost:3000/opengraph-image.jpg?1f4cd24de62e2382"}],["$","link","18",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"48x48"}],["$","$L4a","19",{}]],"error":null,"digest":"$undefined"} 10:"$b:metadata" 3c:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," ~/your_path/flusm/Userspace\r\n"]}] 3d:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Kill existing processes"}],"\r\n"]}] 3e:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"pkill"}]," ",["$","span",null,{"className":"token parameter variable","children":"-f"}]," project-2 ",["$","span",null,{"className":"token operator","children":[["$","span",null,{"className":"token file-descriptor important","children":"2"}],">"]}],"/dev/null ",["$","span",null,{"className":"token operator","children":"||"}]," ",["$","span",null,{"className":"token boolean","children":"true"}],"\r\n"]}] 3f:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Launch the allocator"}],"\r\n"]}] 40:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ./APIv/project-2 test_4mb.cfg\n"]}] 41:["$","p",null,{"children":["$","strong",null,{"children":"Terminal 4 - Event Generator :"}]}] 42:["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd flusm/Userspace\r\n# Wait for the allocator to be ready\r\nsleep 3\r\n# Execute the event test\r\nsudo LD_PRELOAD=./usmTagger ./littleTestEvents 12\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Wait for the allocator to be ready"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sleep"}]," ",["$","span",null,{"className":"token number","children":"3"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Execute the event test"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTestEvents ",["$","span",null,{"className":"token number","children":"12"}],"\n"]}]]}]}]}]]}] 43:["$","div",".1",{"className":"border-l pl-9 ml-3 relative","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":2}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Test 2.1 : Process Onboarding and Event Processing"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":[["$","strong",null,{"children":"Objective :"}]," Validate that ",["$","code",null,{"children":"InstanceUSM"}]," can detect, register, and handle page faults from a tagged application."]}],["$","p",null,{"children":[["$","strong",null,{"children":"Observations :"}]," ",["$","code",null,{"children":"InstanceUSM"}]," correctly detects the ",["$","code",null,{"children":"littleTestEvents"}],". process. It assigns the default policy, creates a dedicated \"Majordomo\" thread, and begins managing page fault events generated by the application's memory accesses."]}],["$","p",null,{"children":["$","strong",null,{"children":"Success Indicators :"}]}],["$","ul",null,{"children":["\n",["$","li",null,{"children":"Worker processes successfully initialized (Worker-1/freePageReceiver, memWorker-0/bravoZero)"}],"\n",["$","li",null,{"children":"Event processing with messages such as \"Channel appended! [Legacy]\""}],"\n",["$","li",null,{"children":"Memory coordination between processes with state transitions"}],"\n",["$","li",null,{"children":"Performance metrics reaching or exceeding 500 events/second"}],"\n"]}],["$","p",null,{"children":[["$","strong",null,{"children":"Result :"}]," ",["$","strong",null,{"children":"PASSED"}],". The event system operates within expected performance parameters, demonstrating low-latency processing."]}],["$","p",null,{"children":"This complete video demonstrates:"}],["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Worker process initialization"}]," with detailed logs"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Real-time event processing"}]," showing Channel and Legacy support"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Memory coordinator operations"}]," between multiple USM processes"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Performance monitoring"}]," of event throughput and latency"]}],"\n"]}],["$","div",null,{"className":"my-6 border bg-background rounded-lg overflow-hidden shadow-md","children":[["$","div",null,{"className":"bg-muted px-4 py-2 flex items-center gap-2 border-b","children":[["$","div",null,{"className":"flex items-center gap-1.5","children":[["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}]]}],["$","div",null,{"className":"flex-grow text-center text-sm text-muted-foreground font-mono capitalize","children":"littleTestEvents Phase 2: Advanced Event Processing and Worker Coordination"}]]}],["$","video",null,{"src":"/videos/Test/littletestEvents.webm","poster":"$undefined","controls":true,"muted":true,"autoPlay":false,"loop":false,"playsInline":true,"className":"w-full h-auto bg-black"}]]}]]}]}]]}]]}] 44:["$","$L28",null,{"content":"cd flusm/Userspace\r\n# Kill existing processes\r\nsudo pkill -f \"project-2\\|waker\" 2>/dev/null || true\r\nsleep 2\r\n# Launch the allocator\r\nsudo ./APIv/project-2 test_4mb.cfg &\r\nsleep 3\r\n# Attempt to launch the waker idf available\r\nsudo ./usmWaker 2>/dev/null || echo \"Waker not available, continuing with fork tests\"\n"}] 45:["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Kill existing processes"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token function","children":"pkill"}]," ",["$","span",null,{"className":"token parameter variable","children":"-f"}]," ",["$","span",null,{"className":"token string","children":"\"project-2\\|waker\""}]," ",["$","span",null,{"className":"token operator","children":[["$","span",null,{"className":"token file-descriptor important","children":"2"}],">"]}],"/dev/null ",["$","span",null,{"className":"token operator","children":"||"}]," ",["$","span",null,{"className":"token boolean","children":"true"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sleep"}]," ",["$","span",null,{"className":"token number","children":"2"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Launch the allocator"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ./APIv/project-2 test_4mb.cfg ",["$","span",null,{"className":"token operator","children":"&"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sleep"}]," ",["$","span",null,{"className":"token number","children":"3"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Attempt to launch the waker idf available"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ./usmWaker ",["$","span",null,{"className":"token operator","children":[["$","span",null,{"className":"token file-descriptor important","children":"2"}],">"]}],"/dev/null ",["$","span",null,{"className":"token operator","children":"||"}]," ",["$","span",null,{"className":"token builtin class-name","children":"echo"}]," ",["$","span",null,{"className":"token string","children":"\"Waker not available, continuing with fork tests\""}],"\n"]}]]}]}]}] 46:["$","p",null,{"children":["$","strong",null,{"children":"Terminal 4 - Fork Test Execution :"}]}] 47:["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"cd flusm/Userspace\r\n# wait for allocator stability\r\nsleep 5\r\n# Execute the fork test\r\nsudo LD_PRELOAD=./usmTagger ./littleTestFork 12\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token builtin class-name","children":"cd"}]," flusm/Userspace\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# wait for allocator stability"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sleep"}]," ",["$","span",null,{"className":"token number","children":"5"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Execute the fork test"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTestFork ",["$","span",null,{"className":"token number","children":"12"}],"\n"]}]]}]}]}]]}] 48:["$","div",".1",{"className":"border-l pl-9 ml-3 relative pb-5","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":2}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Test 3.1 : Process Fork Management"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":[["$","strong",null,{"children":"Objective :"}]," Verify that when a USM-managed process calls ",["$","code",null,{"children":"fork()"}],", the child process correctly inherits the USM context."]}],["$","p",null,{"children":[["$","strong",null,{"children":"Observations :"}]," The child process is successfully created and inherits the USM-managed state from the parent. Both parent and child can continue to operate on their memory regions as expected, with appropriate copy-on-write behavior handled by the system."]}],["$","p",null,{"children":["$","strong",null,{"children":"Basic Test :"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"sudo LD_PRELOAD=./usmTagger ./littleTestFork 10\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTestFork ",["$","span",null,{"className":"token number","children":"10"}],"\n"]}]}]}]}]]}],["$","p",null,{"children":[["$","strong",null,{"children":"Result :"}]," ",["$","strong",null,{"children":"PASSED"}],". Fork operations maintain USM integrity with correct state propagation."]}]]}]}]]}]]}] 49:["$","div",".2",{"className":"border-l pl-9 ml-3 relative","children":[["$","div",null,{"className":"bg-muted w-8 h-8 text-xs font-medium rounded-md border flex items-center justify-center absolute -left-4 font-code","children":3}],["$","div",null,{"className":"pt-0.5","children":[["$","h4",null,{"className":"mt-0","children":"Test 3.2 : Multi-Process Coordination"}],["$","div",null,{"children":["$","div",null,{"children":[["$","p",null,{"children":[["$","strong",null,{"children":"Objective :"}]," Test coordination between multiple USM-managed processes, including the sleeper/waker mechanism."]}],["$","p",null,{"children":[["$","strong",null,{"children":"Observations :"}]," The ",["$","code",null,{"children":"usmWaker"}]," correctly monitors and wakes the appropriate ",["$","code",null,{"children":"InstanceUSM"}]," threads in response to events from multiple concurrent process. This demonstrates that the central scheduling and coordination mechanism is scalable and efficient."]}],["$","p",null,{"children":["$","strong",null,{"children":"Advanced Fork Tests:"}]}],["$","div",null,{"className":"my-5 relative group","children":[["$","div",null,{"className":"absolute top-3 right-2.5 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200","children":["$","$L28",null,{"content":"# Test 1: simple Fork \r\nsudo LD_PRELOAD=./usmTagger ./littleTestFork 12\r\n\r\n# Test 2: Multiple concurrent forks \r\nfor i in {1..3}; do\r\n sudo LD_PRELOAD=./usmTagger ./littleTestFork 8 &\r\n sleep 1\r\ndone\r\nwait\r\n\r\n# Test 3: Parent-Child Coordination\r\nsudo LD_PRELOAD=./usmTagger bash -c '\r\necho \"Parent process: $$\"\r\n./littleTestFork 10 &\r\nchild_pid=$!\r\necho \"Child PID: $child_pid\"\r\nwait $child_pid\r\necho \"Parent-child test complete\"\r\n'\n"}]}],["$","div",null,{"className":"relative","children":["$","pre",null,{"className":"language-bash","children":["$","code",null,{"className":"language-bash code-highlight","children":[["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Test 1: simple Fork "}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTestFork ",["$","span",null,{"className":"token number","children":"12"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":"\r\n"}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token comment","children":"# Test 2: Multiple concurrent forks "}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token keyword","children":"for"}]," ",["$","span",null,{"className":"token for-or-select variable","children":"i"}]," ",["$","span",null,{"className":"token keyword","children":"in"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token number","children":"1"}],["$","span",null,{"className":"token punctuation","children":".."}],["$","span",null,{"className":"token number","children":"3"}],["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token keyword","children":"do"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[" ",["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ./littleTestFork ",["$","span",null,{"className":"token number","children":"8"}]," ",["$","span",null,{"className":"token operator","children":"&"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[" ",["$","span",null,{"className":"token function","children":"sleep"}]," ",["$","span",null,{"className":"token number","children":"1"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token keyword","children":"done"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"wait"}],"\r\n"]}],["$","span",null,{"className":"code-line","children":"\r\n"}],["$","span",null,{"className":"code-line","children":["$L4b","\r\n"]}],"$L4c","$L4d","$L4e","$L4f","$L50","$L51","$L52","$L53"]}]}]}]]}],"$L54","$L55","$L56","$L57","$L58","$L59"]}]}]]}]]}] 4b:["$","span",null,{"className":"token comment","children":"# Test 3: Parent-Child Coordination"}] 4c:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token function","children":"sudo"}]," ",["$","span",null,{"className":"token assign-left variable","children":"LD_PRELOAD"}],["$","span",null,{"className":"token operator","children":"="}],"./usmTagger ",["$","span",null,{"className":"token function","children":"bash"}]," ",["$","span",null,{"className":"token parameter variable","children":"-c"}]," ",["$","span",null,{"className":"token string","children":"'\r\n"}]]}] 4d:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"echo \"Parent process: $$\"\r\n"}]}] 4e:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"./littleTestFork 10 &\r\n"}]}] 4f:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"child_pid=$!\r\n"}]}] 50:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"echo \"Child PID: $child_pid\"\r\n"}]}] 51:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"wait $child_pid\r\n"}]}] 52:["$","span",null,{"className":"code-line","children":["$","span",null,{"className":"token string","children":"echo \"Parent-child test complete\"\r\n"}]}] 53:["$","span",null,{"className":"code-line","children":[["$","span",null,{"className":"token string","children":"'"}],"\n"]}] 54:["$","p",null,{"children":["$","strong",null,{"children":"Critical Validation Points :"}]}] 55:["$","ul",null,{"children":["\n",["$","li",null,{"children":"Fork context inheritance working correctly with USM state propagation"}],"\n",["$","li",null,{"children":"Functional parent-child coordination with proper resource cleanup"}],"\n",["$","li",null,{"children":"Operational multi-process synchronization with sleeper/waker mechanisms"}],"\n",["$","li",null,{"children":"Performance metrics maintaining sub-microsecond coordination latency"}],"\n"]}] 56:["$","p",null,{"children":[["$","strong",null,{"children":"Result :"}]," ",["$","strong",null,{"children":"PASSED"}],". Multi-process coordination operates as designed, demonstrating USM's sophisticated process management capabilities."]}] 57:["$","p",null,{"children":"Watch this detailed demonstration of the most complex USM test phase:"}] 58:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Fork context inheritance"}]," demonstrated with parent-child process trees"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Multi-process synchronization"}]," showing sleeper/waker coordination"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Resource management"}]," during concurrent process operations"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Performance validation"}]," under multi-process load scenarios"]}],"\n"]}] 59:["$","div",null,{"className":"my-6 border bg-background rounded-lg overflow-hidden shadow-md","children":[["$","div",null,{"className":"bg-muted px-4 py-2 flex items-center gap-2 border-b","children":[["$","div",null,{"className":"flex items-center gap-1.5","children":[["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}],["$","span",null,{"className":"w-3 h-3 bg-border rounded-full"}]]}],["$","div",null,{"className":"flex-grow text-center text-sm text-muted-foreground font-mono capitalize","children":"littleTestFork Phase 3: Process Fork Management and Multi-Process Coordination"}]]}],["$","video",null,{"src":"/videos/Test/littletestFork.webm","poster":"$undefined","controls":true,"muted":true,"autoPlay":false,"loop":false,"playsInline":true,"className":"w-full h-auto bg-black"}]]}] 5a:I[31615,["316","static/chunks/ad2866b8-635304a38afc0b68.js","239","static/chunks/239-b0aaac5106d996a5.js","619","static/chunks/619-f072ac750404f9da.js","41","static/chunks/41-ad140fb6f3297f70.js","836","static/chunks/836-049faba5b3fbd25b.js","869","static/chunks/869-f328dfc4a7854a42.js","217","static/chunks/217-b882ca4bd6228d18.js","531","static/chunks/531-c61cd8adb4f12f15.js","368","static/chunks/368-fb0c58a608326176.js","309","static/chunks/app/%5Blang%5D/docs/%5B%5B...slug%5D%5D/page-a405d0666d803277.js"],"default"] 3b:["$","div",null,{"className":"lg:flex hidden toc flex-[1] min-w-[200px] py-9 sticky top-16 h-[96.95vh]","children":["$","div",null,{"className":"flex flex-col gap-3 w-full pl-2","children":[["$","h3",null,{"className":"font-semibold text-sm","children":"On this page"}],["$","$L5",null,{"className":"pb-2 pt-0.5 overflow-y-auto","children":["$","$L5a",null,{"data":[{"level":2,"text":"Phase 1 : Basic Module and Memory Testing (littleTest)","href":"#phase-1--basic-module-and-memory-testing-littletest"},{"level":2,"text":"Phase 2 : Event Processing and Process Coordination (littleTestEvents)","href":"#phase-2--event-processing-and-process-coordination-littletestevents"},{"level":2,"text":"Phase 3 : Process Forking and Multi-Process Management (littleTestFork)","href":"#phase-3--process-forking-and-multi-process-management-littletestfork"}]}]}]]}]}]