| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737 |
- accept_memory= [MM]
- Format: { eager | lazy }
- default: lazy
- By default, unaccepted memory is accepted lazily to
- avoid prolonged boot times. The lazy option will add
- some runtime overhead until all memory is eventually
- accepted. In most cases the overhead is negligible.
- For some workloads or for debugging purposes
- accept_memory=eager can be used to accept all memory
- at once during boot.
- acpi= [HW,ACPI,X86,ARM64,RISCV64,EARLY]
- Advanced Configuration and Power Interface
- Format: { force | on | off | strict | noirq | rsdt |
- copy_dsdt | nospcr }
- force -- enable ACPI if default was off
- on -- enable ACPI but allow fallback to DT [arm64,riscv64]
- off -- disable ACPI if default was on
- noirq -- do not use ACPI for IRQ routing
- strict -- Be less tolerant of platforms that are not
- strictly ACPI specification compliant.
- rsdt -- prefer RSDT over (default) XSDT
- copy_dsdt -- copy DSDT to memory
- nospcr -- disable console in ACPI SPCR table as
- default _serial_ console on ARM64
- For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or
- "acpi=nospcr" are available
- For RISCV64, ONLY "acpi=off", "acpi=on" or "acpi=force"
- are available
- See also Documentation/power/runtime_pm.rst, pci=noacpi
- acpi_apic_instance= [ACPI,IOAPIC,EARLY]
- Format: <int>
- 2: use 2nd APIC table, if available
- 1,0: use 1st APIC table
- default: 0
- acpi_backlight= [HW,ACPI]
- { vendor | video | native | none }
- If set to vendor, prefer vendor-specific driver
- (e.g. thinkpad_acpi, sony_acpi, etc.) instead
- of the ACPI video.ko driver.
- If set to video, use the ACPI video.ko driver.
- If set to native, use the device's native backlight mode.
- If set to none, disable the ACPI backlight interface.
- acpi_force_32bit_fadt_addr [ACPI,EARLY]
- force FADT to use 32 bit addresses rather than the
- 64 bit X_* addresses. Some firmware have broken 64
- bit addresses for force ACPI ignore these and use
- the older legacy 32 bit addresses.
- acpica_no_return_repair [HW, ACPI]
- Disable AML predefined validation mechanism
- This mechanism can repair the evaluation result to make
- the return objects more ACPI specification compliant.
- This option is useful for developers to identify the
- root cause of an AML interpreter issue when the issue
- has something to do with the repair mechanism.
- acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]
- acpi.debug_level= [HW,ACPI,ACPI_DEBUG]
- Format: <int>
- CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
- debug output. Bits in debug_layer correspond to a
- _COMPONENT in an ACPI source file, e.g.,
- #define _COMPONENT ACPI_EVENTS
- Bits in debug_level correspond to a level in
- ACPI_DEBUG_PRINT statements, e.g.,
- ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
- The debug_level mask defaults to "info". See
- Documentation/firmware-guide/acpi/debug.rst for more information about
- debug layers and levels.
- Enable processor driver info messages:
- acpi.debug_layer=0x20000000
- Enable AML "Debug" output, i.e., stores to the Debug
- object while interpreting AML:
- acpi.debug_layer=0xffffffff acpi.debug_level=0x2
- Enable all messages related to ACPI hardware:
- acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
- Some values produce so much output that the system is
- unusable. The "log_buf_len" parameter may be useful
- if you need to capture more output.
- acpi_enforce_resources= [ACPI]
- { strict | lax | no }
- Check for resource conflicts between native drivers
- and ACPI OperationRegions (SystemIO and SystemMemory
- only). IO ports and memory declared in ACPI might be
- used by the ACPI subsystem in arbitrary AML code and
- can interfere with legacy drivers.
- strict (default): access to resources claimed by ACPI
- is denied; legacy drivers trying to access reserved
- resources will fail to bind to device using them.
- lax: access to resources claimed by ACPI is allowed;
- legacy drivers trying to access reserved resources
- will bind successfully but a warning message is logged.
- no: ACPI OperationRegions are not marked as reserved,
- no further checks are performed.
- acpi_force_table_verification [HW,ACPI,EARLY]
- Enable table checksum verification during early stage.
- By default, this is disabled due to x86 early mapping
- size limitation.
- acpi_irq_balance [HW,ACPI]
- ACPI will balance active IRQs
- default in APIC mode
- acpi_irq_nobalance [HW,ACPI]
- ACPI will not move active IRQs (default)
- default in PIC mode
- acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA
- Format: <irq>,<irq>...
- acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for
- use by PCI
- Format: <irq>,<irq>...
- acpi_mask_gpe= [HW,ACPI]
- Due to the existence of _Lxx/_Exx, some GPEs triggered
- by unsupported hardware/firmware features can result in
- GPE floodings that cannot be automatically disabled by
- the GPE dispatcher.
- This facility can be used to prevent such uncontrolled
- GPE floodings.
- Format: <byte> or <bitmap-list>
- acpi_no_auto_serialize [HW,ACPI]
- Disable auto-serialization of AML methods
- AML control methods that contain the opcodes to create
- named objects will be marked as "Serialized" by the
- auto-serialization feature.
- This feature is enabled by default.
- This option allows to turn off the feature.
- acpi_no_memhotplug [ACPI] Disable memory hotplug. Useful for kdump
- kernels.
- acpi_no_static_ssdt [HW,ACPI,EARLY]
- Disable installation of static SSDTs at early boot time
- By default, SSDTs contained in the RSDT/XSDT will be
- installed automatically and they will appear under
- /sys/firmware/acpi/tables.
- This option turns off this feature.
- Note that specifying this option does not affect
- dynamic table installation which will install SSDT
- tables to /sys/firmware/acpi/tables/dynamic.
- acpi_no_watchdog [HW,ACPI,WDT]
- Ignore the ACPI-based watchdog interface (WDAT) and let
- a native driver control the watchdog device instead.
- acpi_rsdp= [ACPI,EFI,KEXEC,EARLY]
- Pass the RSDP address to the kernel, mostly used
- on machines running EFI runtime service to boot the
- second kernel for kdump.
- acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS
- Format: To spoof as Windows 98: ="Microsoft Windows"
- acpi_rev_override [ACPI] Override the _REV object to return 5 (instead
- of 2 which is mandated by ACPI 6) as the supported ACPI
- specification revision (when using this switch, it may
- be necessary to carry out a cold reboot _twice_ in a
- row to make it take effect on the platform firmware).
- acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
- acpi_osi="string1" # add string1
- acpi_osi="!string2" # remove string2
- acpi_osi=!* # remove all strings
- acpi_osi=! # disable all built-in OS vendor
- strings
- acpi_osi=!! # enable all built-in OS vendor
- strings
- acpi_osi= # disable all strings
- 'acpi_osi=!' can be used in combination with single or
- multiple 'acpi_osi="string1"' to support specific OS
- vendor string(s). Note that such command can only
- affect the default state of the OS vendor strings, thus
- it cannot affect the default state of the feature group
- strings and the current state of the OS vendor strings,
- specifying it multiple times through kernel command line
- is meaningless. This command is useful when one do not
- care about the state of the feature group strings which
- should be controlled by the OSPM.
- Examples:
- 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
- to 'acpi_osi="Windows 2000" acpi_osi=!', they all
- can make '_OSI("Windows 2000")' TRUE.
- 'acpi_osi=' cannot be used in combination with other
- 'acpi_osi=' command lines, the _OSI method will not
- exist in the ACPI namespace. NOTE that such command can
- only affect the _OSI support state, thus specifying it
- multiple times through kernel command line is also
- meaningless.
- Examples:
- 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
- FALSE.
- 'acpi_osi=!*' can be used in combination with single or
- multiple 'acpi_osi="string1"' to support specific
- string(s). Note that such command can affect the
- current state of both the OS vendor strings and the
- feature group strings, thus specifying it multiple times
- through kernel command line is meaningful. But it may
- still not able to affect the final state of a string if
- there are quirks related to this string. This command
- is useful when one want to control the state of the
- feature group strings to debug BIOS issues related to
- the OSPM features.
- Examples:
- 1. 'acpi_osi="Module Device" acpi_osi=!*' can make
- '_OSI("Module Device")' FALSE.
- 2. 'acpi_osi=!* acpi_osi="Module Device"' can make
- '_OSI("Module Device")' TRUE.
- 3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is
- equivalent to
- 'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"'
- and
- 'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!',
- they all will make '_OSI("Windows 2000")' TRUE.
- acpi_pm_good [X86]
- Override the pmtimer bug detection: force the kernel
- to assume that this machine's pmtimer latches its value
- and always returns good values.
- acpi_sci= [HW,ACPI,EARLY] ACPI System Control Interrupt trigger mode
- Format: { level | edge | high | low }
- acpi_skip_timer_override [HW,ACPI,EARLY]
- Recognize and ignore IRQ0/pin2 Interrupt Override.
- For broken nForce2 BIOS resulting in XT-PIC timer.
- acpi_sleep= [HW,ACPI] Sleep options
- Format: { s3_bios, s3_mode, s3_beep, s4_hwsig,
- s4_nohwsig, old_ordering, nonvs,
- sci_force_enable, nobl }
- See Documentation/power/video.rst for information on
- s3_bios and s3_mode.
- s3_beep is for debugging; it makes the PC's speaker beep
- as soon as the kernel's real-mode entry point is called.
- s4_hwsig causes the kernel to check the ACPI hardware
- signature during resume from hibernation, and gracefully
- refuse to resume if it has changed. This complies with
- the ACPI specification but not with reality, since
- Windows does not do this and many laptops do change it
- on docking. So the default behaviour is to allow resume
- and simply warn when the signature changes, unless the
- s4_hwsig option is enabled.
- s4_nohwsig prevents ACPI hardware signature from being
- used (or even warned about) during resume.
- old_ordering causes the ACPI 1.0 ordering of the _PTS
- control method, with respect to putting devices into
- low power states, to be enforced (the ACPI 2.0 ordering
- of _PTS is used by default).
- nonvs prevents the kernel from saving/restoring the
- ACPI NVS memory during suspend/hibernation and resume.
- sci_force_enable causes the kernel to set SCI_EN directly
- on resume from S1/S3 (which is against the ACPI spec,
- but some broken systems don't work without it).
- nobl causes the internal blacklist of systems known to
- behave incorrectly in some ways with respect to system
- suspend and resume to be ignored (use wisely).
- acpi_use_timer_override [HW,ACPI,EARLY]
- Use timer override. For some broken Nvidia NF5 boards
- that require a timer override, but don't have HPET
- add_efi_memmap [EFI,X86,EARLY] Include EFI memory map in
- kernel's map of available physical RAM.
- agp= [AGP]
- { off | try_unsupported }
- off: disable AGP support
- try_unsupported: try to drive unsupported chipsets
- (may crash computer or cause data corruption)
- ALSA [HW,ALSA]
- See Documentation/sound/alsa-configuration.rst
- alignment= [KNL,ARM]
- Allow the default userspace alignment fault handler
- behaviour to be specified. Bit 0 enables warnings,
- bit 1 enables fixups, and bit 2 sends a segfault.
- align_va_addr= [X86-64]
- Align virtual addresses by clearing slice [14:12] when
- allocating a VMA at process creation time. This option
- gives you up to 3% performance improvement on AMD F15h
- machines (where it is enabled by default) for a
- CPU-intensive style benchmark, and it can vary highly in
- a microbenchmark depending on workload and compiler.
- 32: only for 32-bit processes
- 64: only for 64-bit processes
- on: enable for both 32- and 64-bit processes
- off: disable for both 32- and 64-bit processes
- alloc_snapshot [FTRACE]
- Allocate the ftrace snapshot buffer on boot up when the
- main buffer is allocated. This is handy if debugging
- and you need to use tracing_snapshot() on boot up, and
- do not want to use tracing_snapshot_alloc() as it needs
- to be done where GFP_KERNEL allocations are allowed.
- allow_mismatched_32bit_el0 [ARM64,EARLY]
- Allow execve() of 32-bit applications and setting of the
- PER_LINUX32 personality on systems where only a strict
- subset of the CPUs support 32-bit EL0. When this
- parameter is present, the set of CPUs supporting 32-bit
- EL0 is indicated by /sys/devices/system/cpu/aarch32_el0
- and hot-unplug operations may be restricted.
- See Documentation/arch/arm64/asymmetric-32bit.rst for more
- information.
- amd_iommu= [HW,X86-64]
- Pass parameters to the AMD IOMMU driver in the system.
- Possible values are:
- fullflush - Deprecated, equivalent to iommu.strict=1
- off - do not initialize any AMD IOMMU found in
- the system
- force_isolation - Force device isolation for all
- devices. The IOMMU driver is not
- allowed anymore to lift isolation
- requirements as needed. This option
- does not override iommu=pt
- force_enable - Force enable the IOMMU on platforms known
- to be buggy with IOMMU enabled. Use this
- option with care.
- pgtbl_v1 - Use v1 page table for DMA-API (Default).
- pgtbl_v2 - Use v2 page table for DMA-API.
- irtcachedis - Disable Interrupt Remapping Table (IRT) caching.
- nohugepages - Limit page-sizes used for v1 page-tables
- to 4 KiB.
- v2_pgsizes_only - Limit page-sizes used for v1 page-tables
- to 4KiB/2Mib/1GiB.
- amd_iommu_dump= [HW,X86-64]
- Enable AMD IOMMU driver option to dump the ACPI table
- for AMD IOMMU. With this option enabled, AMD IOMMU
- driver will print ACPI tables for AMD IOMMU during
- IOMMU initialization.
- amd_iommu_intr= [HW,X86-64]
- Specifies one of the following AMD IOMMU interrupt
- remapping modes:
- legacy - Use legacy interrupt remapping mode.
- vapic - Use virtual APIC mode, which allows IOMMU
- to inject interrupts directly into guest.
- This mode requires kvm-amd.avic=1.
- (Default when IOMMU HW support is present.)
- amd_pstate= [X86,EARLY]
- disable
- Do not enable amd_pstate as the default
- scaling driver for the supported processors
- passive
- Use amd_pstate with passive mode as a scaling driver.
- In this mode autonomous selection is disabled.
- Driver requests a desired performance level and platform
- tries to match the same performance level if it is
- satisfied by guaranteed performance level.
- active
- Use amd_pstate_epp driver instance as the scaling driver,
- driver provides a hint to the hardware if software wants
- to bias toward performance (0x0) or energy efficiency (0xff)
- to the CPPC firmware. then CPPC power algorithm will
- calculate the runtime workload and adjust the realtime cores
- frequency.
- guided
- Activate guided autonomous mode. Driver requests minimum and
- maximum performance level and the platform autonomously
- selects a performance level in this range and appropriate
- to the current workload.
- amd_prefcore=
- [X86]
- disable
- Disable amd-pstate preferred core.
- amijoy.map= [HW,JOY] Amiga joystick support
- Map of devices attached to JOY0DAT and JOY1DAT
- Format: <a>,<b>
- See also Documentation/input/joydev/joystick.rst
- analog.map= [HW,JOY] Analog joystick and gamepad support
- Specifies type or capabilities of an analog joystick
- connected to one of 16 gameports
- Format: <type1>,<type2>,..<type16>
- apc= [HW,SPARC]
- Power management functions (SPARCstation-4/5 + deriv.)
- Format: noidle
- Disable APC CPU standby support. SPARCstation-Fox does
- not play well with APC CPU idle - disable it if you have
- APC and your system crashes randomly.
- apic= [APIC,X86,EARLY] Advanced Programmable Interrupt Controller
- Change the output verbosity while booting
- Format: { quiet (default) | verbose | debug }
- Change the amount of debugging information output
- when initialising the APIC and IO-APIC components.
- For X86-32, this can also be used to specify an APIC
- driver name.
- Format: apic=driver_name
- Examples: apic=bigsmp
- apic_extnmi= [APIC,X86,EARLY] External NMI delivery setting
- Format: { bsp (default) | all | none }
- bsp: External NMI is delivered only to CPU 0
- all: External NMIs are broadcast to all CPUs as a
- backup of CPU 0
- none: External NMI is masked for all CPUs. This is
- useful so that a dump capture kernel won't be
- shot down by NMI
- autoconf= [IPV6]
- See Documentation/networking/ipv6.rst.
- apm= [APM] Advanced Power Management
- See header of arch/x86/kernel/apm_32.c.
- apparmor= [APPARMOR] Disable or enable AppArmor at boot time
- Format: { "0" | "1" }
- See security/apparmor/Kconfig help text
- 0 -- disable.
- 1 -- enable.
- Default value is set via kernel config option.
- arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
- Format: <io>,<irq>,<nodeID>
- arm64.no32bit_el0 [ARM64] Unconditionally disable the execution of
- 32 bit applications.
- arm64.nobti [ARM64] Unconditionally disable Branch Target
- Identification support
- arm64.nomops [ARM64] Unconditionally disable Memory Copy and Memory
- Set instructions support
- arm64.nomte [ARM64] Unconditionally disable Memory Tagging Extension
- support
- arm64.nopauth [ARM64] Unconditionally disable Pointer Authentication
- support
- arm64.nosme [ARM64] Unconditionally disable Scalable Matrix
- Extension support
- arm64.nosve [ARM64] Unconditionally disable Scalable Vector
- Extension support
- ataflop= [HW,M68k]
- atarimouse= [HW,MOUSE] Atari Mouse
- atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess,
- EzKey and similar keyboards
- atkbd.reset= [HW] Reset keyboard during initialization
- atkbd.set= [HW] Select keyboard code set
- Format: <int> (2 = AT (default), 3 = PS/2)
- atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar
- keyboards
- atkbd.softraw= [HW] Choose between synthetic and real raw mode
- Format: <bool> (0 = real, 1 = synthetic (default))
- atkbd.softrepeat= [HW]
- Use software keyboard repeat
- audit= [KNL] Enable the audit sub-system
- Format: { "0" | "1" | "off" | "on" }
- 0 | off - kernel audit is disabled and can not be
- enabled until the next reboot
- unset - kernel audit is initialized but disabled and
- will be fully enabled by the userspace auditd.
- 1 | on - kernel audit is initialized and partially
- enabled, storing at most audit_backlog_limit
- messages in RAM until it is fully enabled by the
- userspace auditd.
- Default: unset
- audit_backlog_limit= [KNL] Set the audit queue size limit.
- Format: <int> (must be >=0)
- Default: 64
- bau= [X86_UV] Enable the BAU on SGI UV. The default
- behavior is to disable the BAU (i.e. bau=0).
- Format: { "0" | "1" }
- 0 - Disable the BAU.
- 1 - Enable the BAU.
- unset - Disable the BAU.
- baycom_epp= [HW,AX25]
- Format: <io>,<mode>
- baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem
- Format: <io>,<mode>
- See header of drivers/net/hamradio/baycom_par.c.
- baycom_ser_fdx= [HW,AX25]
- BayCom Serial Port AX.25 Modem (Full Duplex Mode)
- Format: <io>,<irq>,<mode>[,<baud>]
- See header of drivers/net/hamradio/baycom_ser_fdx.c.
- baycom_ser_hdx= [HW,AX25]
- BayCom Serial Port AX.25 Modem (Half Duplex Mode)
- Format: <io>,<irq>,<mode>
- See header of drivers/net/hamradio/baycom_ser_hdx.c.
- bdev_allow_write_mounted=
- Format: <bool>
- Control the ability to open a mounted block device
- for writing, i.e., allow / disallow writes that bypass
- the FS. This was implemented as a means to prevent
- fuzzers from crashing the kernel by overwriting the
- metadata underneath a mounted FS without its awareness.
- This also prevents destructive formatting of mounted
- filesystems by naive storage tooling that don't use
- O_EXCL. Default is Y and can be changed through the
- Kconfig option CONFIG_BLK_DEV_WRITE_MOUNTED.
- bert_disable [ACPI]
- Disable BERT OS support on buggy BIOSes.
- bgrt_disable [ACPI,X86,EARLY]
- Disable BGRT to avoid flickering OEM logo.
- blkdevparts= Manual partition parsing of block device(s) for
- embedded devices based on command line input.
- See Documentation/block/cmdline-partition.rst
- boot_delay= [KNL,EARLY]
- Milliseconds to delay each printk during boot.
- Only works if CONFIG_BOOT_PRINTK_DELAY is enabled,
- and you may also have to specify "lpj=". Boot_delay
- values larger than 10 seconds (10000) are assumed
- erroneous and ignored.
- Format: integer
- bootconfig [KNL,EARLY]
- Extended command line options can be added to an initrd
- and this will cause the kernel to look for it.
- See Documentation/admin-guide/bootconfig.rst
- bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)
- bttv.radio= Most important insmod options are available as
- kernel args too.
- bttv.pll= See Documentation/admin-guide/media/bttv.rst
- bttv.tuner=
- bulk_remove=off [PPC] This parameter disables the use of the pSeries
- firmware feature for flushing multiple hpte entries
- at a time.
- c101= [NET] Moxa C101 synchronous serial card
- cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection.
- Sometimes CPU hardware bugs make them report the cache
- size incorrectly. The kernel will attempt work arounds
- to fix known problems, but for some CPUs it is not
- possible to determine what the correct size should be.
- This option provides an override for these situations.
- carrier_timeout=
- [NET] Specifies amount of time (in seconds) that
- the kernel should wait for a network carrier. By default
- it waits 120 seconds.
- ca_keys= [KEYS] This parameter identifies a specific key(s) on
- the system trusted keyring to be used for certificate
- trust validation.
- format: { id:<keyid> | builtin }
- cca= [MIPS,EARLY] Override the kernel pages' cache coherency
- algorithm. Accepted values range from 0 to 7
- inclusive. See arch/mips/include/asm/pgtable-bits.h
- for platform specific values (SB1, Loongson3 and
- others).
- ccw_timeout_log [S390]
- See Documentation/arch/s390/common_io.rst for details.
- cgroup_disable= [KNL] Disable a particular controller or optional feature
- Format: {name of the controller(s) or feature(s) to disable}
- The effects of cgroup_disable=foo are:
- - foo isn't auto-mounted if you mount all cgroups in
- a single hierarchy
- - foo isn't visible as an individually mountable
- subsystem
- - if foo is an optional feature then the feature is
- disabled and corresponding cgroup files are not
- created
- {Currently only "memory" controller deal with this and
- cut the overhead, others just disable the usage. So
- only cgroup_disable=memory is actually worthy}
- Specifying "pressure" disables per-cgroup pressure
- stall information accounting feature
- cgroup_no_v1= [KNL] Disable cgroup controllers and named hierarchies in v1
- Format: { { controller | "all" | "named" }
- [,{ controller | "all" | "named" }...] }
- Like cgroup_disable, but only applies to cgroup v1;
- the blacklisted controllers remain available in cgroup2.
- "all" blacklists all controllers and "named" disables
- named mounts. Specifying both "all" and "named" disables
- all v1 hierarchies.
- cgroup_favordynmods= [KNL] Enable or Disable favordynmods.
- Format: { "true" | "false" }
- Defaults to the value of CONFIG_CGROUP_FAVOR_DYNMODS.
- cgroup.memory= [KNL] Pass options to the cgroup memory controller.
- Format: <string>
- nosocket -- Disable socket memory accounting.
- nokmem -- Disable kernel memory accounting.
- nobpf -- Disable BPF memory accounting.
- checkreqprot= [SELINUX] Set initial checkreqprot flag value.
- Format: { "0" | "1" }
- See security/selinux/Kconfig help text.
- 0 -- check protection applied by kernel (includes
- any implied execute protection).
- 1 -- check protection requested by application.
- Default value is set via a kernel config option.
- Value can be changed at runtime via
- /sys/fs/selinux/checkreqprot.
- Setting checkreqprot to 1 is deprecated.
- cio_ignore= [S390]
- See Documentation/arch/s390/common_io.rst for details.
- clearcpuid=X[,X...] [X86]
- Disable CPUID feature X for the kernel. See
- arch/x86/include/asm/cpufeatures.h for the valid bit
- numbers X. Note the Linux-specific bits are not necessarily
- stable over kernel options, but the vendor-specific
- ones should be.
- X can also be a string as appearing in the flags: line
- in /proc/cpuinfo which does not have the above
- instability issue. However, not all features have names
- in /proc/cpuinfo.
- Note that using this option will taint your kernel.
- Also note that user programs calling CPUID directly
- or using the feature without checking anything
- will still see it. This just prevents it from
- being used by the kernel or shown in /proc/cpuinfo.
- Also note the kernel might malfunction if you disable
- some critical bits.
- clk_ignore_unused
- [CLK]
- Prevents the clock framework from automatically gating
- clocks that have not been explicitly enabled by a Linux
- device driver but are enabled in hardware at reset or
- by the bootloader/firmware. Note that this does not
- force such clocks to be always-on nor does it reserve
- those clocks in any way. This parameter is useful for
- debug and development, but should not be needed on a
- platform with proper driver support. For more
- information, see Documentation/driver-api/clk.rst.
- clock= [BUGS=X86-32, HW] gettimeofday clocksource override.
- [Deprecated]
- Forces specified clocksource (if available) to be used
- when calculating gettimeofday(). If specified
- clocksource is not available, it defaults to PIT.
- Format: { pit | tsc | cyclone | pmtmr }
- clocksource= Override the default clocksource
- Format: <string>
- Override the default clocksource and use the clocksource
- with the name specified.
- Some clocksource names to choose from, depending on
- the platform:
- [all] jiffies (this is the base, fallback clocksource)
- [ACPI] acpi_pm
- [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2,
- pxa_timer,timer3,32k_counter,timer0_1
- [X86-32] pit,hpet,tsc;
- scx200_hrt on Geode; cyclone on IBM x440
- [MIPS] MIPS
- [PARISC] cr16
- [S390] tod
- [SH] SuperH
- [SPARC64] tick
- [X86-64] hpet,tsc
- clocksource.arm_arch_timer.evtstrm=
- [ARM,ARM64,EARLY]
- Format: <bool>
- Enable/disable the eventstream feature of the ARM
- architected timer so that code using WFE-based polling
- loops can be debugged more effectively on production
- systems.
- clocksource.verify_n_cpus= [KNL]
- Limit the number of CPUs checked for clocksources
- marked with CLOCK_SOURCE_VERIFY_PERCPU that
- are marked unstable due to excessive skew.
- A negative value says to check all CPUs, while
- zero says not to check any. Values larger than
- nr_cpu_ids are silently truncated to nr_cpu_ids.
- The actual CPUs are chosen randomly, with
- no replacement if the same CPU is chosen twice.
- clocksource-wdtest.holdoff= [KNL]
- Set the time in seconds that the clocksource
- watchdog test waits before commencing its tests.
- Defaults to zero when built as a module and to
- 10 seconds when built into the kernel.
- cma=nn[MG]@[start[MG][-end[MG]]]
- [KNL,CMA,EARLY]
- Sets the size of kernel global memory area for
- contiguous memory allocations and optionally the
- placement constraint by the physical address range of
- memory allocations. A value of 0 disables CMA
- altogether. For more information, see
- kernel/dma/contiguous.c
- cma_pernuma=nn[MG]
- [KNL,CMA,EARLY]
- Sets the size of kernel per-numa memory area for
- contiguous memory allocations. A value of 0 disables
- per-numa CMA altogether. And If this option is not
- specified, the default value is 0.
- With per-numa CMA enabled, DMA users on node nid will
- first try to allocate buffer from the pernuma area
- which is located in node nid, if the allocation fails,
- they will fallback to the global default memory area.
- numa_cma=<node>:nn[MG][,<node>:nn[MG]]
- [KNL,CMA,EARLY]
- Sets the size of kernel numa memory area for
- contiguous memory allocations. It will reserve CMA
- area for the specified node.
- With numa CMA enabled, DMA users on node nid will
- first try to allocate buffer from the numa area
- which is located in node nid, if the allocation fails,
- they will fallback to the global default memory area.
- cmo_free_hint= [PPC] Format: { yes | no }
- Specify whether pages are marked as being inactive
- when they are freed. This is used in CMO environments
- to determine OS memory pressure for page stealing by
- a hypervisor.
- Default: yes
- coherent_pool=nn[KMG] [ARM,KNL,EARLY]
- Sets the size of memory pool for coherent, atomic dma
- allocations, by default set to 256K.
- com20020= [HW,NET] ARCnet - COM20020 chipset
- Format:
- <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
- com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)
- Format: <io>[,<irq>]
- com90xx= [HW,NET]
- ARCnet - COM90xx chipset (memory-mapped buffers)
- Format: <io>[,<irq>[,<memstart>]]
- condev= [HW,S390] console device
- conmode=
- con3215_drop= [S390,EARLY] 3215 console drop mode.
- Format: y|n|Y|N|1|0
- When set to true, drop data on the 3215 console when
- the console buffer is full. In this case the
- operator using a 3270 terminal emulator (for example
- x3270) does not have to enter the clear key for the
- console output to advance and the kernel to continue.
- This leads to a much faster boot time when a 3270
- terminal emulator is active. If no 3270 terminal
- emulator is used, this parameter has no effect.
- console= [KNL] Output console device and options.
- tty<n> Use the virtual console device <n>.
- ttyS<n>[,options]
- ttyUSB0[,options]
- Use the specified serial port. The options are of
- the form "bbbbpnf", where "bbbb" is the baud rate,
- "p" is parity ("n", "o", or "e"), "n" is number of
- bits, and "f" is flow control ("r" for RTS or
- omit it). Default is "9600n8".
- See Documentation/admin-guide/serial-console.rst for more
- information. See
- Documentation/networking/netconsole.rst for an
- alternative.
- <DEVNAME>:<n>.<n>[,options]
- Use the specified serial port on the serial core bus.
- The addressing uses DEVNAME of the physical serial port
- device, followed by the serial core controller instance,
- and the serial port instance. The options are the same
- as documented for the ttyS addressing above.
- The mapping of the serial ports to the tty instances
- can be viewed with:
- $ ls -d /sys/bus/serial-base/devices/*:*.*/tty/*
- /sys/bus/serial-base/devices/00:04:0.0/tty/ttyS0
- In the above example, the console can be addressed with
- console=00:04:0.0. Note that a console addressed this
- way will only get added when the related device driver
- is ready. The use of an earlycon parameter in addition to
- the console may be desired for console output early on.
- uart[8250],io,<addr>[,options]
- uart[8250],mmio,<addr>[,options]
- uart[8250],mmio16,<addr>[,options]
- uart[8250],mmio32,<addr>[,options]
- uart[8250],0x<addr>[,options]
- Start an early, polled-mode console on the 8250/16550
- UART at the specified I/O port or MMIO address,
- switching to the matching ttyS device later.
- MMIO inter-register address stride is either 8-bit
- (mmio), 16-bit (mmio16), or 32-bit (mmio32).
- If none of [io|mmio|mmio16|mmio32], <addr> is assumed
- to be equivalent to 'mmio'. 'options' are specified in
- the same format described for ttyS above; if unspecified,
- the h/w is not re-initialized.
- hvc<n> Use the hypervisor console device <n>. This is for
- both Xen and PowerPC hypervisors.
- { null | "" }
- Use to disable console output, i.e., to have kernel
- console messages discarded.
- This must be the only console= parameter used on the
- kernel command line.
- If the device connected to the port is not a TTY but a braille
- device, prepend "brl," before the device type, for instance
- console=brl,ttyS0
- For now, only VisioBraille is supported.
- console_msg_format=
- [KNL] Change console messages format
- default
- By default we print messages on consoles in
- "[time stamp] text\n" format (time stamp may not be
- printed, depending on CONFIG_PRINTK_TIME or
- `printk_time' param).
- syslog
- Switch to syslog format: "<%u>[time stamp] text\n"
- IOW, each message will have a facility and loglevel
- prefix. The format is similar to one used by syslog()
- syscall, or to executing "dmesg -S --raw" or to reading
- from /proc/kmsg.
- consoleblank= [KNL] The console blank (screen saver) timeout in
- seconds. A value of 0 disables the blank timer.
- Defaults to 0.
- coredump_filter=
- [KNL] Change the default value for
- /proc/<pid>/coredump_filter.
- See also Documentation/filesystems/proc.rst.
- coresight_cpu_debug.enable
- [ARM,ARM64]
- Format: <bool>
- Enable/disable the CPU sampling based debugging.
- 0: default value, disable debugging
- 1: enable debugging at boot time
- cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver
- Format:
- <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
- cpuidle.off=1 [CPU_IDLE]
- disable the cpuidle sub-system
- cpuidle.governor=
- [CPU_IDLE] Name of the cpuidle governor to use.
- cpufreq.off=1 [CPU_FREQ]
- disable the cpufreq sub-system
- cpufreq.default_governor=
- [CPU_FREQ] Name of the default cpufreq governor or
- policy to use. This governor must be registered in the
- kernel before the cpufreq driver probes.
- cpu_init_udelay=N
- [X86,EARLY] Delay for N microsec between assert and de-assert
- of APIC INIT to start processors. This delay occurs
- on every CPU online, such as boot, and resume from suspend.
- Default: 10000
- cpuhp.parallel=
- [SMP] Enable/disable parallel bringup of secondary CPUs
- Format: <bool>
- Default is enabled if CONFIG_HOTPLUG_PARALLEL=y. Otherwise
- the parameter has no effect.
- crash_kexec_post_notifiers
- Run kdump after running panic-notifiers and dumping
- kmsg. This only for the users who doubt kdump always
- succeeds in any situation.
- Note that this also increases risks of kdump failure,
- because some panic notifiers can make the crashed
- kernel more unstable.
- crashkernel=size[KMG][@offset[KMG]]
- [KNL,EARLY] Using kexec, Linux can switch to a 'crash kernel'
- upon panic. This parameter reserves the physical
- memory region [offset, offset + size] for that kernel
- image. If '@offset' is omitted, then a suitable offset
- is selected automatically.
- [KNL, X86-64, ARM64, RISCV, LoongArch] Select a region
- under 4G first, and fall back to reserve region above
- 4G when '@offset' hasn't been specified.
- See Documentation/admin-guide/kdump/kdump.rst for further details.
- crashkernel=range1:size1[,range2:size2,...][@offset]
- [KNL] Same as above, but depends on the memory
- in the running system. The syntax of range is
- start-[end] where start and end are both
- a memory unit (amount[KMG]). See also
- Documentation/admin-guide/kdump/kdump.rst for an example.
- crashkernel=size[KMG],high
- [KNL, X86-64, ARM64, RISCV, LoongArch] range could be
- above 4G.
- Allow kernel to allocate physical memory region from top,
- so could be above 4G if system have more than 4G ram
- installed. Otherwise memory region will be allocated
- below 4G, if available.
- It will be ignored if crashkernel=X is specified.
- crashkernel=size[KMG],low
- [KNL, X86-64, ARM64, RISCV, LoongArch] range under 4G.
- When crashkernel=X,high is passed, kernel could allocate
- physical memory region above 4G, that cause second kernel
- crash on system that require some amount of low memory,
- e.g. swiotlb requires at least 64M+32K low memory, also
- enough extra low memory is needed to make sure DMA buffers
- for 32-bit devices won't run out. Kernel would try to allocate
- default size of memory below 4G automatically. The default
- size is platform dependent.
- --> x86: max(swiotlb_size_or_default() + 8MiB, 256MiB)
- --> arm64: 128MiB
- --> riscv: 128MiB
- --> loongarch: 128MiB
- This one lets the user specify own low range under 4G
- for second kernel instead.
- 0: to disable low allocation.
- It will be ignored when crashkernel=X,high is not used
- or memory reserved is below 4G.
- cryptomgr.notests
- [KNL] Disable crypto self-tests
- cs89x0_dma= [HW,NET]
- Format: <dma>
- cs89x0_media= [HW,NET]
- Format: { rj45 | aui | bnc }
- csdlock_debug= [KNL] Enable or disable debug add-ons of cross-CPU
- function call handling. When switched on,
- additional debug data is printed to the console
- in case a hanging CPU is detected, and that
- CPU is pinged again in order to try to resolve
- the hang situation. The default value of this
- option depends on the CSD_LOCK_WAIT_DEBUG_DEFAULT
- Kconfig option.
- dasd= [HW,NET]
- See header of drivers/s390/block/dasd_devmap.c.
- db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port
- (one device per port)
- Format: <port#>,<type>
- See also Documentation/input/devices/joystick-parport.rst
- debug [KNL,EARLY] Enable kernel debugging (events log level).
- debug_boot_weak_hash
- [KNL,EARLY] Enable printing [hashed] pointers early in the
- boot sequence. If enabled, we use a weak hash instead
- of siphash to hash pointers. Use this option if you are
- seeing instances of '(___ptrval___)') and need to see a
- value (hashed pointer) instead. Cryptographically
- insecure, please do not use on production kernels.
- debug_locks_verbose=
- [KNL] verbose locking self-tests
- Format: <int>
- Print debugging info while doing the locking API
- self-tests.
- Bitmask for the various LOCKTYPE_ tests. Defaults to 0
- (no extra messages), setting it to -1 (all bits set)
- will print _a_lot_ more information - normally only
- useful to lockdep developers.
- debug_objects [KNL,EARLY] Enable object debugging
- debug_guardpage_minorder=
- [KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this
- parameter allows control of the order of pages that will
- be intentionally kept free (and hence protected) by the
- buddy allocator. Bigger value increase the probability
- of catching random memory corruption, but reduce the
- amount of memory for normal system use. The maximum
- possible value is MAX_PAGE_ORDER/2. Setting this
- parameter to 1 or 2 should be enough to identify most
- random memory corruption problems caused by bugs in
- kernel or driver code when a CPU writes to (or reads
- from) a random memory location. Note that there exists
- a class of memory corruptions problems caused by buggy
- H/W or F/W or by drivers badly programming DMA
- (basically when memory is written at bus level and the
- CPU MMU is bypassed) which are not detectable by
- CONFIG_DEBUG_PAGEALLOC, hence this option will not
- help tracking down these problems.
- debug_pagealloc=
- [KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this parameter
- enables the feature at boot time. By default, it is
- disabled and the system will work mostly the same as a
- kernel built without CONFIG_DEBUG_PAGEALLOC.
- Note: to get most of debug_pagealloc error reports, it's
- useful to also enable the page_owner functionality.
- on: enable the feature
- debugfs= [KNL,EARLY] This parameter enables what is exposed to
- userspace and debugfs internal clients.
- Format: { on, no-mount, off }
- on: All functions are enabled.
- no-mount:
- Filesystem is not registered but kernel clients can
- access APIs and a crashkernel can be used to read
- its content. There is nothing to mount.
- off: Filesystem is not registered and clients
- get a -EPERM as result when trying to register files
- or directories within debugfs.
- This is equivalent of the runtime functionality if
- debugfs was not enabled in the kernel at all.
- Default value is set in build-time with a kernel configuration.
- debugpat [X86] Enable PAT debugging
- default_hugepagesz=
- [HW] The size of the default HugeTLB page. This is
- the size represented by the legacy /proc/ hugepages
- APIs. In addition, this is the default hugetlb size
- used for shmget(), mmap() and mounting hugetlbfs
- filesystems. If not specified, defaults to the
- architecture's default huge page size. Huge page
- sizes are architecture dependent. See also
- Documentation/admin-guide/mm/hugetlbpage.rst.
- Format: size[KMG]
- deferred_probe_timeout=
- [KNL] Debugging option to set a timeout in seconds for
- deferred probe to give up waiting on dependencies to
- probe. Only specific dependencies (subsystems or
- drivers) that have opted in will be ignored. A timeout
- of 0 will timeout at the end of initcalls. If the time
- out hasn't expired, it'll be restarted by each
- successful driver registration. This option will also
- dump out devices still on the deferred probe list after
- retrying.
- delayacct [KNL] Enable per-task delay accounting
- dell_smm_hwmon.ignore_dmi=
- [HW] Continue probing hardware even if DMI data
- indicates that the driver is running on unsupported
- hardware.
- dell_smm_hwmon.force=
- [HW] Activate driver even if SMM BIOS signature does
- not match list of supported models and enable otherwise
- blacklisted features.
- dell_smm_hwmon.power_status=
- [HW] Report power status in /proc/i8k
- (disabled by default).
- dell_smm_hwmon.restricted=
- [HW] Allow controlling fans only if SYS_ADMIN
- capability is set.
- dell_smm_hwmon.fan_mult=
- [HW] Factor to multiply fan speed with.
- dell_smm_hwmon.fan_max=
- [HW] Maximum configurable fan speed.
- dfltcc= [HW,S390]
- Format: { on | off | def_only | inf_only | always }
- on: s390 zlib hardware support for compression on
- level 1 and decompression (default)
- off: No s390 zlib hardware support
- def_only: s390 zlib hardware support for deflate
- only (compression on level 1)
- inf_only: s390 zlib hardware support for inflate
- only (decompression)
- always: Same as 'on' but ignores the selected compression
- level always using hardware support (used for debugging)
- dhash_entries= [KNL]
- Set number of hash buckets for dentry cache.
- disable_1tb_segments [PPC,EARLY]
- Disables the use of 1TB hash page table segments. This
- causes the kernel to fall back to 256MB segments which
- can be useful when debugging issues that require an SLB
- miss to occur.
- disable= [IPV6]
- See Documentation/networking/ipv6.rst.
- disable_radix [PPC,EARLY]
- Disable RADIX MMU mode on POWER9
- disable_tlbie [PPC]
- Disable TLBIE instruction. Currently does not work
- with KVM, with HASH MMU, or with coherent accelerators.
- disable_ddw [PPC/PSERIES,EARLY]
- Disable Dynamic DMA Window support. Use this
- to workaround buggy firmware.
- disable_ipv6= [IPV6]
- See Documentation/networking/ipv6.rst.
- disable_mtrr_cleanup [X86,EARLY]
- The kernel tries to adjust MTRR layout from continuous
- to discrete, to make X server driver able to add WB
- entry later. This parameter disables that.
- disable_mtrr_trim [X86, Intel and AMD only,EARLY]
- By default the kernel will trim any uncacheable
- memory out of your available memory pool based on
- MTRR settings. This parameter disables that behavior,
- possibly causing your machine to run very slowly.
- disable_timer_pin_1 [X86,EARLY]
- Disable PIN 1 of APIC timer
- Can be useful to work around chipset bugs.
- dis_ucode_ldr [X86] Disable the microcode loader.
- dma_debug=off If the kernel is compiled with DMA_API_DEBUG support,
- this option disables the debugging code at boot.
- dma_debug_entries=<number>
- This option allows to tune the number of preallocated
- entries for DMA-API debugging code. One entry is
- required per DMA-API allocation. Use this if the
- DMA-API debugging code disables itself because the
- architectural default is too low.
- dma_debug_driver=<driver_name>
- With this option the DMA-API debugging driver
- filter feature can be enabled at boot time. Just
- pass the driver to filter for as the parameter.
- The filter can be disabled or changed to another
- driver later using sysfs.
- reg_file_data_sampling=
- [X86] Controls mitigation for Register File Data
- Sampling (RFDS) vulnerability. RFDS is a CPU
- vulnerability which may allow userspace to infer
- kernel data values previously stored in floating point
- registers, vector registers, or integer registers.
- RFDS only affects Intel Atom processors.
- on: Turns ON the mitigation.
- off: Turns OFF the mitigation.
- This parameter overrides the compile time default set
- by CONFIG_MITIGATION_RFDS. Mitigation cannot be
- disabled when other VERW based mitigations (like MDS)
- are enabled. In order to disable RFDS mitigation all
- VERW based mitigations need to be disabled.
- For details see:
- Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst
- driver_async_probe= [KNL]
- List of driver names to be probed asynchronously. *
- matches with all driver names. If * is specified, the
- rest of the listed driver names are those that will NOT
- match the *.
- Format: <driver_name1>,<driver_name2>...
- drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
- Broken monitors, graphic adapters, KVMs and EDIDless
- panels may send no or incorrect EDID data sets.
- This parameter allows to specify an EDID data sets
- in the /lib/firmware directory that are used instead.
- An EDID data set will only be used for a particular
- connector, if its name and a colon are prepended to
- the EDID name. Each connector may use a unique EDID
- data set by separating the files with a comma. An EDID
- data set with no connector name will be used for
- any connectors not explicitly specified.
- dscc4.setup= [NET]
- dt_cpu_ftrs= [PPC,EARLY]
- Format: {"off" | "known"}
- Control how the dt_cpu_ftrs device-tree binding is
- used for CPU feature discovery and setup (if it
- exists).
- off: Do not use it, fall back to legacy cpu table.
- known: Do not pass through unknown features to guests
- or userspace, only those that the kernel is aware of.
- dump_apple_properties [X86]
- Dump name and content of EFI device properties on
- x86 Macs. Useful for driver authors to determine
- what data is available or for reverse-engineering.
- dyndbg[="val"] [KNL,DYNAMIC_DEBUG]
- <module>.dyndbg[="val"]
- Enable debug messages at boot time. See
- Documentation/admin-guide/dynamic-debug-howto.rst
- for details.
- early_ioremap_debug [KNL,EARLY]
- Enable debug messages in early_ioremap support. This
- is useful for tracking down temporary early mappings
- which are not unmapped.
- earlycon= [KNL,EARLY] Output early console device and options.
- When used with no options, the early console is
- determined by stdout-path property in device tree's
- chosen node or the ACPI SPCR table if supported by
- the platform.
- cdns,<addr>[,options]
- Start an early, polled-mode console on a Cadence
- (xuartps) serial port at the specified address. Only
- supported option is baud rate. If baud rate is not
- specified, the serial port must already be setup and
- configured.
- uart[8250],io,<addr>[,options[,uartclk]]
- uart[8250],mmio,<addr>[,options[,uartclk]]
- uart[8250],mmio32,<addr>[,options[,uartclk]]
- uart[8250],mmio32be,<addr>[,options[,uartclk]]
- uart[8250],0x<addr>[,options]
- Start an early, polled-mode console on the 8250/16550
- UART at the specified I/O port or MMIO address.
- MMIO inter-register address stride is either 8-bit
- (mmio) or 32-bit (mmio32 or mmio32be).
- If none of [io|mmio|mmio32|mmio32be], <addr> is assumed
- to be equivalent to 'mmio'. 'options' are specified
- in the same format described for "console=ttyS<n>"; if
- unspecified, the h/w is not initialized. 'uartclk' is
- the uart clock frequency; if unspecified, it is set
- to 'BASE_BAUD' * 16.
- pl011,<addr>
- pl011,mmio32,<addr>
- Start an early, polled-mode console on a pl011 serial
- port at the specified address. The pl011 serial port
- must already be setup and configured. Options are not
- yet supported. If 'mmio32' is specified, then only
- the driver will use only 32-bit accessors to read/write
- the device registers.
- liteuart,<addr>
- Start an early console on a litex serial port at the
- specified address. The serial port must already be
- setup and configured. Options are not yet supported.
- meson,<addr>
- Start an early, polled-mode console on a meson serial
- port at the specified address. The serial port must
- already be setup and configured. Options are not yet
- supported.
- msm_serial,<addr>
- Start an early, polled-mode console on an msm serial
- port at the specified address. The serial port
- must already be setup and configured. Options are not
- yet supported.
- msm_serial_dm,<addr>
- Start an early, polled-mode console on an msm serial
- dm port at the specified address. The serial port
- must already be setup and configured. Options are not
- yet supported.
- owl,<addr>
- Start an early, polled-mode console on a serial port
- of an Actions Semi SoC, such as S500 or S900, at the
- specified address. The serial port must already be
- setup and configured. Options are not yet supported.
- rda,<addr>
- Start an early, polled-mode console on a serial port
- of an RDA Micro SoC, such as RDA8810PL, at the
- specified address. The serial port must already be
- setup and configured. Options are not yet supported.
- sbi
- Use RISC-V SBI (Supervisor Binary Interface) for early
- console.
- smh Use ARM semihosting calls for early console.
- s3c2410,<addr>
- s3c2412,<addr>
- s3c2440,<addr>
- s3c6400,<addr>
- s5pv210,<addr>
- exynos4210,<addr>
- Use early console provided by serial driver available
- on Samsung SoCs, requires selecting proper type and
- a correct base address of the selected UART port. The
- serial port must already be setup and configured.
- Options are not yet supported.
- lantiq,<addr>
- Start an early, polled-mode console on a lantiq serial
- (lqasc) port at the specified address. The serial port
- must already be setup and configured. Options are not
- yet supported.
- lpuart,<addr>
- lpuart32,<addr>
- Use early console provided by Freescale LP UART driver
- found on Freescale Vybrid and QorIQ LS1021A processors.
- A valid base address must be provided, and the serial
- port must already be setup and configured.
- ec_imx21,<addr>
- ec_imx6q,<addr>
- Start an early, polled-mode, output-only console on the
- Freescale i.MX UART at the specified address. The UART
- must already be setup and configured.
- ar3700_uart,<addr>
- Start an early, polled-mode console on the
- Armada 3700 serial port at the specified
- address. The serial port must already be setup
- and configured. Options are not yet supported.
- qcom_geni,<addr>
- Start an early, polled-mode console on a Qualcomm
- Generic Interface (GENI) based serial port at the
- specified address. The serial port must already be
- setup and configured. Options are not yet supported.
- efifb,[options]
- Start an early, unaccelerated console on the EFI
- memory mapped framebuffer (if available). On cache
- coherent non-x86 systems that use system memory for
- the framebuffer, pass the 'ram' option so that it is
- mapped with the correct attributes.
- linflex,<addr>
- Use early console provided by Freescale LINFlexD UART
- serial driver for NXP S32V234 SoCs. A valid base
- address must be provided, and the serial port must
- already be setup and configured.
- earlyprintk= [X86,SH,ARM,M68k,S390,UM,EARLY]
- earlyprintk=vga
- earlyprintk=sclp
- earlyprintk=xen
- earlyprintk=serial[,ttySn[,baudrate]]
- earlyprintk=serial[,0x...[,baudrate]]
- earlyprintk=ttySn[,baudrate]
- earlyprintk=dbgp[debugController#]
- earlyprintk=pciserial[,force],bus:device.function[,baudrate]
- earlyprintk=xdbc[xhciController#]
- earlyprintk=bios
- earlyprintk is useful when the kernel crashes before
- the normal console is initialized. It is not enabled by
- default because it has some cosmetic problems.
- Append ",keep" to not disable it when the real console
- takes over.
- Only one of vga, serial, or usb debug port can
- be used at a time.
- Currently only ttyS0 and ttyS1 may be specified by
- name. Other I/O ports may be explicitly specified
- on some architectures (x86 and arm at least) by
- replacing ttySn with an I/O port address, like this:
- earlyprintk=serial,0x1008,115200
- You can find the port for a given device in
- /proc/tty/driver/serial:
- 2: uart:ST16650V2 port:00001008 irq:18 ...
- Interaction with the standard serial driver is not
- very good.
- The VGA output is eventually overwritten by
- the real console.
- The xen option can only be used in Xen domains.
- The sclp output can only be used on s390.
- The bios output can only be used on SuperH.
- The optional "force" to "pciserial" enables use of a
- PCI device even when its classcode is not of the
- UART class.
- edac_report= [HW,EDAC] Control how to report EDAC event
- Format: {"on" | "off" | "force"}
- on: enable EDAC to report H/W event. May be overridden
- by other higher priority error reporting module.
- off: disable H/W event reporting through EDAC.
- force: enforce the use of EDAC to report H/W event.
- default: on.
- edd= [EDD]
- Format: {"off" | "on" | "skip[mbr]"}
- efi= [EFI,EARLY]
- Format: { "debug", "disable_early_pci_dma",
- "nochunk", "noruntime", "nosoftreserve",
- "novamap", "no_disable_early_pci_dma" }
- debug: enable misc debug output.
- disable_early_pci_dma: disable the busmaster bit on all
- PCI bridges while in the EFI boot stub.
- nochunk: disable reading files in "chunks" in the EFI
- boot stub, as chunking can cause problems with some
- firmware implementations.
- noruntime : disable EFI runtime services support
- nosoftreserve: The EFI_MEMORY_SP (Specific Purpose)
- attribute may cause the kernel to reserve the
- memory range for a memory mapping driver to
- claim. Specify efi=nosoftreserve to disable this
- reservation and treat the memory by its base type
- (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM").
- novamap: do not call SetVirtualAddressMap().
- no_disable_early_pci_dma: Leave the busmaster bit set
- on all PCI bridges while in the EFI boot stub
- efi_no_storage_paranoia [EFI,X86,EARLY]
- Using this parameter you can use more than 50% of
- your efi variable storage. Use this parameter only if
- you are really sure that your UEFI does sane gc and
- fulfills the spec otherwise your board may brick.
- efivar_ssdt= [EFI; X86] Name of an EFI variable that contains an SSDT
- that is to be dynamically loaded by Linux. If there are
- multiple variables with the same name but with different
- vendor GUIDs, all of them will be loaded. See
- Documentation/admin-guide/acpi/ssdt-overlays.rst for details.
- eisa_irq_edge= [PARISC,HW]
- See header of drivers/parisc/eisa.c.
- ekgdboc= [X86,KGDB,EARLY] Allow early kernel console debugging
- Format: ekgdboc=kbd
- This is designed to be used in conjunction with
- the boot argument: earlyprintk=vga
- This parameter works in place of the kgdboc parameter
- but can only be used if the backing tty is available
- very early in the boot process. For early debugging
- via a serial port see kgdboc_earlycon instead.
- elanfreq= [X86-32]
- See comment before function elanfreq_setup() in
- arch/x86/kernel/cpu/cpufreq/elanfreq.c.
- elfcorehdr=[size[KMG]@]offset[KMG] [PPC,SH,X86,S390,EARLY]
- Specifies physical address of start of kernel core
- image elf header and optionally the size. Generally
- kexec loader will pass this option to capture kernel.
- See Documentation/admin-guide/kdump/kdump.rst for details.
- enable_mtrr_cleanup [X86,EARLY]
- The kernel tries to adjust MTRR layout from continuous
- to discrete, to make X server driver able to add WB
- entry later. This parameter enables that.
- enable_timer_pin_1 [X86]
- Enable PIN 1 of APIC timer
- Can be useful to work around chipset bugs
- (in particular on some ATI chipsets).
- The kernel tries to set a reasonable default.
- enforcing= [SELINUX] Set initial enforcing status.
- Format: {"0" | "1"}
- See security/selinux/Kconfig help text.
- 0 -- permissive (log only, no denials).
- 1 -- enforcing (deny and log).
- Default value is 0.
- Value can be changed at runtime via
- /sys/fs/selinux/enforce.
- erst_disable [ACPI]
- Disable Error Record Serialization Table (ERST)
- support.
- ether= [HW,NET] Ethernet cards parameters
- This option is obsoleted by the "netdev=" option, which
- has equivalent usage. See its documentation for details.
- evm= [EVM]
- Format: { "fix" }
- Permit 'security.evm' to be updated regardless of
- current integrity status.
- early_page_ext [KNL,EARLY] Enforces page_ext initialization to earlier
- stages so cover more early boot allocations.
- Please note that as side effect some optimizations
- might be disabled to achieve that (e.g. parallelized
- memory initialization is disabled) so the boot process
- might take longer, especially on systems with a lot of
- memory. Available with CONFIG_PAGE_EXTENSION=y.
- failslab=
- fail_usercopy=
- fail_page_alloc=
- fail_make_request=[KNL]
- General fault injection mechanism.
- Format: <interval>,<probability>,<space>,<times>
- See also Documentation/fault-injection/.
- fb_tunnels= [NET]
- Format: { initns | none }
- See Documentation/admin-guide/sysctl/net.rst for
- fb_tunnels_only_for_init_ns
- floppy= [HW]
- See Documentation/admin-guide/blockdev/floppy.rst.
- forcepae [X86-32]
- Forcefully enable Physical Address Extension (PAE).
- Many Pentium M systems disable PAE but may have a
- functionally usable PAE implementation.
- Warning: use of this parameter will taint the kernel
- and may cause unknown problems.
- fred= [X86-64]
- Enable/disable Flexible Return and Event Delivery.
- Format: { on | off }
- on: enable FRED when it's present.
- off: disable FRED, the default setting.
- ftrace=[tracer]
- [FTRACE] will set and start the specified tracer
- as early as possible in order to facilitate early
- boot debugging.
- ftrace_boot_snapshot
- [FTRACE] On boot up, a snapshot will be taken of the
- ftrace ring buffer that can be read at:
- /sys/kernel/tracing/snapshot.
- This is useful if you need tracing information from kernel
- boot up that is likely to be overridden by user space
- start up functionality.
- Optionally, the snapshot can also be defined for a tracing
- instance that was created by the trace_instance= command
- line parameter.
- trace_instance=foo,sched_switch ftrace_boot_snapshot=foo
- The above will cause the "foo" tracing instance to trigger
- a snapshot at the end of boot up.
- ftrace_dump_on_oops[=2(orig_cpu) | =<instance>][,<instance> |
- ,<instance>=2(orig_cpu)]
- [FTRACE] will dump the trace buffers on oops.
- If no parameter is passed, ftrace will dump global
- buffers of all CPUs, if you pass 2 or orig_cpu, it
- will dump only the buffer of the CPU that triggered
- the oops, or the specific instance will be dumped if
- its name is passed. Multiple instance dump is also
- supported, and instances are separated by commas. Each
- instance supports only dump on CPU that triggered the
- oops by passing 2 or orig_cpu to it.
- ftrace_dump_on_oops=foo=orig_cpu
- The above will dump only the buffer of "foo" instance
- on CPU that triggered the oops.
- ftrace_dump_on_oops,foo,bar=orig_cpu
- The above will dump global buffer on all CPUs, the
- buffer of "foo" instance on all CPUs and the buffer
- of "bar" instance on CPU that triggered the oops.
- ftrace_filter=[function-list]
- [FTRACE] Limit the functions traced by the function
- tracer at boot up. function-list is a comma-separated
- list of functions. This list can be changed at run
- time by the set_ftrace_filter file in the debugfs
- tracing directory.
- ftrace_notrace=[function-list]
- [FTRACE] Do not trace the functions specified in
- function-list. This list can be changed at run time
- by the set_ftrace_notrace file in the debugfs
- tracing directory.
- ftrace_graph_filter=[function-list]
- [FTRACE] Limit the top level callers functions traced
- by the function graph tracer at boot up.
- function-list is a comma-separated list of functions
- that can be changed at run time by the
- set_graph_function file in the debugfs tracing directory.
- ftrace_graph_notrace=[function-list]
- [FTRACE] Do not trace from the functions specified in
- function-list. This list is a comma-separated list of
- functions that can be changed at run time by the
- set_graph_notrace file in the debugfs tracing directory.
- ftrace_graph_max_depth=<uint>
- [FTRACE] Used with the function graph tracer. This is
- the max depth it will trace into a function. This value
- can be changed at run time by the max_graph_depth file
- in the tracefs tracing directory. default: 0 (no limit)
- fw_devlink= [KNL,EARLY] Create device links between consumer and supplier
- devices by scanning the firmware to infer the
- consumer/supplier relationships. This feature is
- especially useful when drivers are loaded as modules as
- it ensures proper ordering of tasks like device probing
- (suppliers first, then consumers), supplier boot state
- clean up (only after all consumers have probed),
- suspend/resume & runtime PM (consumers first, then
- suppliers).
- Format: { off | permissive | on | rpm }
- off -- Don't create device links from firmware info.
- permissive -- Create device links from firmware info
- but use it only for ordering boot state clean
- up (sync_state() calls).
- on -- Create device links from firmware info and use it
- to enforce probe and suspend/resume ordering.
- rpm -- Like "on", but also use to order runtime PM.
- fw_devlink.strict=<bool>
- [KNL,EARLY] Treat all inferred dependencies as mandatory
- dependencies. This only applies for fw_devlink=on|rpm.
- Format: <bool>
- fw_devlink.sync_state =
- [KNL,EARLY] When all devices that could probe have finished
- probing, this parameter controls what to do with
- devices that haven't yet received their sync_state()
- calls.
- Format: { strict | timeout }
- strict -- Default. Continue waiting on consumers to
- probe successfully.
- timeout -- Give up waiting on consumers and call
- sync_state() on any devices that haven't yet
- received their sync_state() calls after
- deferred_probe_timeout has expired or by
- late_initcall() if !CONFIG_MODULES.
- gamecon.map[2|3]=
- [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
- support via parallel port (up to 5 devices per port)
- Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5>
- See also Documentation/input/devices/joystick-parport.rst
- gamma= [HW,DRM]
- gart_fix_e820= [X86-64,EARLY] disable the fix e820 for K8 GART
- Format: off | on
- default: on
- gather_data_sampling=
- [X86,INTEL,EARLY] Control the Gather Data Sampling (GDS)
- mitigation.
- Gather Data Sampling is a hardware vulnerability which
- allows unprivileged speculative access to data which was
- previously stored in vector registers.
- This issue is mitigated by default in updated microcode.
- The mitigation may have a performance impact but can be
- disabled. On systems without the microcode mitigation
- disabling AVX serves as a mitigation.
- force: Disable AVX to mitigate systems without
- microcode mitigation. No effect if the microcode
- mitigation is present. Known to cause crashes in
- userspace with buggy AVX enumeration.
- off: Disable GDS mitigation.
- gcov_persist= [GCOV] When non-zero (default), profiling data for
- kernel modules is saved and remains accessible via
- debugfs, even when the module is unloaded/reloaded.
- When zero, profiling data is discarded and associated
- debugfs files are removed at module unload time.
- goldfish [X86] Enable the goldfish android emulator platform.
- Don't use this when you are not running on the
- android emulator
- gpio-mockup.gpio_mockup_ranges
- [HW] Sets the ranges of gpiochip of for this device.
- Format: <start1>,<end1>,<start2>,<end2>...
- gpio-mockup.gpio_mockup_named_lines
- [HW] Let the driver know GPIO lines should be named.
- gpt [EFI] Forces disk with valid GPT signature but
- invalid Protective MBR to be treated as GPT. If the
- primary GPT is corrupted, it enables the backup/alternate
- GPT to be used instead.
- grcan.enable0= [HW] Configuration of physical interface 0. Determines
- the "Enable 0" bit of the configuration register.
- Format: 0 | 1
- Default: 0
- grcan.enable1= [HW] Configuration of physical interface 1. Determines
- the "Enable 0" bit of the configuration register.
- Format: 0 | 1
- Default: 0
- grcan.select= [HW] Select which physical interface to use.
- Format: 0 | 1
- Default: 0
- grcan.txsize= [HW] Sets the size of the tx buffer.
- Format: <unsigned int> such that (txsize & ~0x1fffc0) == 0.
- Default: 1024
- grcan.rxsize= [HW] Sets the size of the rx buffer.
- Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
- Default: 1024
- hardened_usercopy=
- [KNL] Under CONFIG_HARDENED_USERCOPY, whether
- hardening is enabled for this boot. Hardened
- usercopy checking is used to protect the kernel
- from reading or writing beyond known memory
- allocation boundaries as a proactive defense
- against bounds-checking flaws in the kernel's
- copy_to_user()/copy_from_user() interface.
- on Perform hardened usercopy checks (default).
- off Disable hardened usercopy checks.
- hardlockup_all_cpu_backtrace=
- [KNL] Should the hard-lockup detector generate
- backtraces on all cpus.
- Format: 0 | 1
- hashdist= [KNL,NUMA] Large hashes allocated during boot
- are distributed across NUMA nodes. Defaults on
- for 64-bit NUMA, off otherwise.
- Format: 0 | 1 (for off | on)
- hd= [EIDE] (E)IDE hard drive subsystem geometry
- Format: <cyl>,<head>,<sect>
- hest_disable [ACPI]
- Disable Hardware Error Source Table (HEST) support;
- corresponding firmware-first mode error processing
- logic will be disabled.
- hibernate= [HIBERNATION]
- noresume Don't check if there's a hibernation image
- present during boot.
- nocompress Don't compress/decompress hibernation images.
- no Disable hibernation and resume.
- protect_image Turn on image protection during restoration
- (that will set all pages holding image data
- during restoration read-only).
- hibernate.compressor= [HIBERNATION] Compression algorithm to be
- used with hibernation.
- Format: { lzo | lz4 }
- Default: lzo
- lzo: Select LZO compression algorithm to
- compress/decompress hibernation image.
- lz4: Select LZ4 compression algorithm to
- compress/decompress hibernation image.
- highmem=nn[KMG] [KNL,BOOT,EARLY] forces the highmem zone to have an exact
- size of <nn>. This works even on boxes that have no
- highmem otherwise. This also works to reduce highmem
- size on bigger boxes.
- highres= [KNL] Enable/disable high resolution timer mode.
- Valid parameters: "on", "off"
- Default: "on"
- hlt [BUGS=ARM,SH]
- hostname= [KNL,EARLY] Set the hostname (aka UTS nodename).
- Format: <string>
- This allows setting the system's hostname during early
- startup. This sets the name returned by gethostname.
- Using this parameter to set the hostname makes it
- possible to ensure the hostname is correctly set before
- any userspace processes run, avoiding the possibility
- that a process may call gethostname before the hostname
- has been explicitly set, resulting in the calling
- process getting an incorrect result. The string must
- not exceed the maximum allowed hostname length (usually
- 64 characters) and will be truncated otherwise.
- hpet= [X86-32,HPET] option to control HPET usage
- Format: { enable (default) | disable | force |
- verbose }
- disable: disable HPET and use PIT instead
- force: allow force enabled of undocumented chips (ICH4,
- VIA, nVidia)
- verbose: show contents of HPET registers during setup
- hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET
- registers. Default set by CONFIG_HPET_MMAP_DEFAULT.
- hugepages= [HW] Number of HugeTLB pages to allocate at boot.
- If this follows hugepagesz (below), it specifies
- the number of pages of hugepagesz to be allocated.
- If this is the first HugeTLB parameter on the command
- line, it specifies the number of pages to allocate for
- the default huge page size. If using node format, the
- number of pages to allocate per-node can be specified.
- See also Documentation/admin-guide/mm/hugetlbpage.rst.
- Format: <integer> or (node format)
- <node>:<integer>[,<node>:<integer>]
- hugepagesz=
- [HW] The size of the HugeTLB pages. This is used in
- conjunction with hugepages (above) to allocate huge
- pages of a specific size at boot. The pair
- hugepagesz=X hugepages=Y can be specified once for
- each supported huge page size. Huge page sizes are
- architecture dependent. See also
- Documentation/admin-guide/mm/hugetlbpage.rst.
- Format: size[KMG]
- hugetlb_cma= [HW,CMA,EARLY] The size of a CMA area used for allocation
- of gigantic hugepages. Or using node format, the size
- of a CMA area per node can be specified.
- Format: nn[KMGTPE] or (node format)
- <node>:nn[KMGTPE][,<node>:nn[KMGTPE]]
- Reserve a CMA area of given size and allocate gigantic
- hugepages using the CMA allocator. If enabled, the
- boot-time allocation of gigantic hugepages is skipped.
- hugetlb_free_vmemmap=
- [KNL] Requires CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
- enabled.
- Control if HugeTLB Vmemmap Optimization (HVO) is enabled.
- Allows heavy hugetlb users to free up some more
- memory (7 * PAGE_SIZE for each 2MB hugetlb page).
- Format: { on | off (default) }
- on: enable HVO
- off: disable HVO
- Built with CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=y,
- the default is on.
- Note that the vmemmap pages may be allocated from the added
- memory block itself when memory_hotplug.memmap_on_memory is
- enabled, those vmemmap pages cannot be optimized even if this
- feature is enabled. Other vmemmap pages not allocated from
- the added memory block itself do not be affected.
- hung_task_panic=
- [KNL] Should the hung task detector generate panics.
- Format: 0 | 1
- A value of 1 instructs the kernel to panic when a
- hung task is detected. The default value is controlled
- by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time
- option. The value selected by this boot parameter can
- be changed later by the kernel.hung_task_panic sysctl.
- hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC)
- terminal devices. Valid values: 0..8
- hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs.
- If specified, z/VM IUCV HVC accepts connections
- from listed z/VM user IDs only.
- hv_nopvspin [X86,HYPER_V,EARLY]
- Disables the paravirt spinlock optimizations
- which allow the hypervisor to 'idle' the guest
- on lock contention.
- i2c_bus= [HW] Override the default board specific I2C bus speed
- or register an additional I2C bus that is not
- registered from board initialization code.
- Format:
- <bus_id>,<clkrate>
- i2c_touchscreen_props= [HW,ACPI,X86]
- Set device-properties for ACPI-enumerated I2C-attached
- touchscreen, to e.g. fix coordinates of upside-down
- mounted touchscreens. If you need this option please
- submit a drivers/platform/x86/touchscreen_dmi.c patch
- adding a DMI quirk for this.
- Format:
- <ACPI_HW_ID>:<prop_name>=<val>[:prop_name=val][:...]
- Where <val> is one of:
- Omit "=<val>" entirely Set a boolean device-property
- Unsigned number Set a u32 device-property
- Anything else Set a string device-property
- Examples (split over multiple lines):
- i2c_touchscreen_props=GDIX1001:touchscreen-inverted-x:
- touchscreen-inverted-y
- i2c_touchscreen_props=MSSL1680:touchscreen-size-x=1920:
- touchscreen-size-y=1080:touchscreen-inverted-y:
- firmware-name=gsl1680-vendor-model.fw:silead,home-button
- i8042.debug [HW] Toggle i8042 debug mode
- i8042.unmask_kbd_data
- [HW] Enable printing of interrupt data from the KBD port
- (disabled by default, and as a pre-condition
- requires that i8042.debug=1 be enabled)
- i8042.direct [HW] Put keyboard port into non-translated mode
- i8042.dumbkbd [HW] Pretend that controller can only read data from
- keyboard and cannot control its state
- (Don't attempt to blink the leds)
- i8042.noaux [HW] Don't check for auxiliary (== mouse) port
- i8042.nokbd [HW] Don't check/create keyboard port
- i8042.noloop [HW] Disable the AUX Loopback command while probing
- for the AUX port
- i8042.nomux [HW] Don't check presence of an active multiplexing
- controller
- i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
- controllers
- i8042.notimeout [HW] Ignore timeout condition signalled by controller
- i8042.reset [HW] Reset the controller during init, cleanup and
- suspend-to-ram transitions, only during s2r
- transitions, or never reset
- Format: { 1 | Y | y | 0 | N | n }
- 1, Y, y: always reset controller
- 0, N, n: don't ever reset controller
- Default: only on s2r transitions on x86; most other
- architectures force reset to be always executed
- i8042.unlock [HW] Unlock (ignore) the keylock
- i8042.kbdreset [HW] Reset device connected to KBD port
- i8042.probe_defer
- [HW] Allow deferred probing upon i8042 probe errors
- i810= [HW,DRM]
- i915.invert_brightness=
- [DRM] Invert the sense of the variable that is used to
- set the brightness of the panel backlight. Normally a
- brightness value of 0 indicates backlight switched off,
- and the maximum of the brightness value sets the backlight
- to maximum brightness. If this parameter is set to 0
- (default) and the machine requires it, or this parameter
- is set to 1, a brightness value of 0 sets the backlight
- to maximum brightness, and the maximum of the brightness
- value switches the backlight off.
- -1 -- never invert brightness
- 0 -- machine default
- 1 -- force brightness inversion
- ia32_emulation= [X86-64]
- Format: <bool>
- When true, allows loading 32-bit programs and executing 32-bit
- syscalls, essentially overriding IA32_EMULATION_DEFAULT_DISABLED at
- boot time. When false, unconditionally disables IA32 emulation.
- icn= [HW,ISDN]
- Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
- idle= [X86,EARLY]
- Format: idle=poll, idle=halt, idle=nomwait
- Poll forces a polling idle loop that can slightly
- improve the performance of waking up a idle CPU, but
- will use a lot of power and make the system run hot.
- Not recommended.
- idle=halt: Halt is forced to be used for CPU idle.
- In such case C2/C3 won't be used again.
- idle=nomwait: Disable mwait for CPU C-states
- idxd.sva= [HW]
- Format: <bool>
- Allow force disabling of Shared Virtual Memory (SVA)
- support for the idxd driver. By default it is set to
- true (1).
- idxd.tc_override= [HW]
- Format: <bool>
- Allow override of default traffic class configuration
- for the device. By default it is set to false (0).
- ieee754= [MIPS] Select IEEE Std 754 conformance mode
- Format: { strict | legacy | 2008 | relaxed | emulated }
- Default: strict
- Choose which programs will be accepted for execution
- based on the IEEE 754 NaN encoding(s) supported by
- the FPU and the NaN encoding requested with the value
- of an ELF file header flag individually set by each
- binary. Hardware implementations are permitted to
- support either or both of the legacy and the 2008 NaN
- encoding mode.
- Available settings are as follows:
- strict accept binaries that request a NaN encoding
- supported by the FPU
- legacy only accept legacy-NaN binaries, if supported
- by the FPU
- 2008 only accept 2008-NaN binaries, if supported
- by the FPU
- relaxed accept any binaries regardless of whether
- supported by the FPU
- emulated accept any binaries but enable FPU emulator
- if binary mode is unsupported by the FPU.
- The FPU emulator is always able to support both NaN
- encodings, so if no FPU hardware is present or it has
- been disabled with 'nofpu', then the settings of
- 'legacy' and '2008' strap the emulator accordingly,
- 'relaxed' straps the emulator for both legacy-NaN and
- 2008-NaN, whereas 'strict' enables legacy-NaN only on
- legacy processors and both NaN encodings on MIPS32 or
- MIPS64 CPUs.
- The setting for ABS.fmt/NEG.fmt instruction execution
- mode generally follows that for the NaN encoding,
- except where unsupported by hardware.
- ignore_loglevel [KNL,EARLY]
- Ignore loglevel setting - this will print /all/
- kernel messages to the console. Useful for debugging.
- We also add it as printk module parameter, so users
- could change it dynamically, usually by
- /sys/module/printk/parameters/ignore_loglevel.
- ignore_rlimit_data
- Ignore RLIMIT_DATA setting for data mappings,
- print warning at first misuse. Can be changed via
- /sys/module/kernel/parameters/ignore_rlimit_data.
- ihash_entries= [KNL]
- Set number of hash buckets for inode cache.
- ima_appraise= [IMA] appraise integrity measurements
- Format: { "off" | "enforce" | "fix" | "log" }
- default: "enforce"
- ima_appraise_tcb [IMA] Deprecated. Use ima_policy= instead.
- The builtin appraise policy appraises all files
- owned by uid=0.
- ima_canonical_fmt [IMA]
- Use the canonical format for the binary runtime
- measurements, instead of host native format.
- ima_hash= [IMA]
- Format: { md5 | sha1 | rmd160 | sha256 | sha384
- | sha512 | ... }
- default: "sha1"
- The list of supported hash algorithms is defined
- in crypto/hash_info.h.
- ima_policy= [IMA]
- The builtin policies to load during IMA setup.
- Format: "tcb | appraise_tcb | secure_boot |
- fail_securely | critical_data"
- The "tcb" policy measures all programs exec'd, files
- mmap'd for exec, and all files opened with the read
- mode bit set by either the effective uid (euid=0) or
- uid=0.
- The "appraise_tcb" policy appraises the integrity of
- all files owned by root.
- The "secure_boot" policy appraises the integrity
- of files (eg. kexec kernel image, kernel modules,
- firmware, policy, etc) based on file signatures.
- The "fail_securely" policy forces file signature
- verification failure also on privileged mounted
- filesystems with the SB_I_UNVERIFIABLE_SIGNATURE
- flag.
- The "critical_data" policy measures kernel integrity
- critical data.
- ima_tcb [IMA] Deprecated. Use ima_policy= instead.
- Load a policy which meets the needs of the Trusted
- Computing Base. This means IMA will measure all
- programs exec'd, files mmap'd for exec, and all files
- opened for read by uid=0.
- ima_template= [IMA]
- Select one of defined IMA measurements template formats.
- Formats: { "ima" | "ima-ng" | "ima-ngv2" | "ima-sig" |
- "ima-sigv2" }
- Default: "ima-ng"
- ima_template_fmt=
- [IMA] Define a custom template format.
- Format: { "field1|...|fieldN" }
- ima.ahash_minsize= [IMA] Minimum file size for asynchronous hash usage
- Format: <min_file_size>
- Set the minimal file size for using asynchronous hash.
- If left unspecified, ahash usage is disabled.
- ahash performance varies for different data sizes on
- different crypto accelerators. This option can be used
- to achieve the best performance for a particular HW.
- ima.ahash_bufsize= [IMA] Asynchronous hash buffer size
- Format: <bufsize>
- Set hashing buffer size. Default: 4k.
- ahash performance varies for different chunk sizes on
- different crypto accelerators. This option can be used
- to achieve best performance for particular HW.
- indirect_target_selection= [X86,Intel] Mitigation control for Indirect
- Target Selection(ITS) bug in Intel CPUs. Updated
- microcode is also required for a fix in IBPB.
- on: Enable mitigation (default).
- off: Disable mitigation.
- force: Force the ITS bug and deploy default
- mitigation.
- vmexit: Only deploy mitigation if CPU is affected by
- guest/host isolation part of ITS.
- stuff: Deploy RSB-fill mitigation when retpoline is
- also deployed. Otherwise, deploy the default
- mitigation.
- For details see:
- Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
- init= [KNL]
- Format: <full_path>
- Run specified binary instead of /sbin/init as init
- process.
- initcall_debug [KNL] Trace initcalls as they are executed. Useful
- for working out where the kernel is dying during
- startup.
- initcall_blacklist= [KNL] Do not execute a comma-separated list of
- initcall functions. Useful for debugging built-in
- modules and initcalls.
- initramfs_async= [KNL]
- Format: <bool>
- Default: 1
- This parameter controls whether the initramfs
- image is unpacked asynchronously, concurrently
- with devices being probed and
- initialized. This should normally just work,
- but as a debugging aid, one can get the
- historical behaviour of the initramfs
- unpacking being completed before device_ and
- late_ initcalls.
- initrd= [BOOT,EARLY] Specify the location of the initial ramdisk
- initrdmem= [KNL,EARLY] Specify a physical address and size from which to
- load the initrd. If an initrd is compiled in or
- specified in the bootparams, it takes priority over this
- setting.
- Format: ss[KMG],nn[KMG]
- Default is 0, 0
- init_on_alloc= [MM,EARLY] Fill newly allocated pages and heap objects with
- zeroes.
- Format: 0 | 1
- Default set by CONFIG_INIT_ON_ALLOC_DEFAULT_ON.
- init_on_free= [MM,EARLY] Fill freed pages and heap objects with zeroes.
- Format: 0 | 1
- Default set by CONFIG_INIT_ON_FREE_DEFAULT_ON.
- init_pkru= [X86] Specify the default memory protection keys rights
- register contents for all processes. 0x55555554 by
- default (disallow access to all but pkey 0). Can
- override in debugfs after boot.
- inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver
- Format: <irq>
- int_pln_enable [X86] Enable power limit notification interrupt
- integrity_audit=[IMA]
- Format: { "0" | "1" }
- 0 -- basic integrity auditing messages. (Default)
- 1 -- additional integrity auditing messages.
- intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option
- on
- Enable intel iommu driver.
- off
- Disable intel iommu driver.
- igfx_off [Default Off]
- By default, gfx is mapped as normal device. If a gfx
- device has a dedicated DMAR unit, the DMAR unit is
- bypassed by not enabling DMAR with this option. In
- this case, gfx device will use physical address for
- DMA.
- strict [Default Off]
- Deprecated, equivalent to iommu.strict=1.
- sp_off [Default Off]
- By default, super page will be supported if Intel IOMMU
- has the capability. With this option, super page will
- not be supported.
- sm_on
- Enable the Intel IOMMU scalable mode if the hardware
- advertises that it has support for the scalable mode
- translation.
- sm_off
- Disallow use of the Intel IOMMU scalable mode.
- tboot_noforce [Default Off]
- Do not force the Intel IOMMU enabled under tboot.
- By default, tboot will force Intel IOMMU on, which
- could harm performance of some high-throughput
- devices like 40GBit network cards, even if identity
- mapping is enabled.
- Note that using this option lowers the security
- provided by tboot because it makes the system
- vulnerable to DMA attacks.
- intel_idle.max_cstate= [KNL,HW,ACPI,X86]
- 0 disables intel_idle and fall back on acpi_idle.
- 1 to 9 specify maximum depth of C-state.
- intel_pstate= [X86,EARLY]
- disable
- Do not enable intel_pstate as the default
- scaling driver for the supported processors
- active
- Use intel_pstate driver to bypass the scaling
- governors layer of cpufreq and provides it own
- algorithms for p-state selection. There are two
- P-state selection algorithms provided by
- intel_pstate in the active mode: powersave and
- performance. The way they both operate depends
- on whether or not the hardware managed P-states
- (HWP) feature has been enabled in the processor
- and possibly on the processor model.
- passive
- Use intel_pstate as a scaling driver, but configure it
- to work with generic cpufreq governors (instead of
- enabling its internal governor). This mode cannot be
- used along with the hardware-managed P-states (HWP)
- feature.
- force
- Enable intel_pstate on systems that prohibit it by default
- in favor of acpi-cpufreq. Forcing the intel_pstate driver
- instead of acpi-cpufreq may disable platform features, such
- as thermal controls and power capping, that rely on ACPI
- P-States information being indicated to OSPM and therefore
- should be used with caution. This option does not work with
- processors that aren't supported by the intel_pstate driver
- or on platforms that use pcc-cpufreq instead of acpi-cpufreq.
- no_hwp
- Do not enable hardware P state control (HWP)
- if available.
- hwp_only
- Only load intel_pstate on systems which support
- hardware P state control (HWP) if available.
- support_acpi_ppc
- Enforce ACPI _PPC performance limits. If the Fixed ACPI
- Description Table, specifies preferred power management
- profile as "Enterprise Server" or "Performance Server",
- then this feature is turned on by default.
- per_cpu_perf_limits
- Allow per-logical-CPU P-State performance control limits using
- cpufreq sysfs interface
- intremap= [X86-64,Intel-IOMMU,EARLY]
- on enable Interrupt Remapping (default)
- off disable Interrupt Remapping
- nosid disable Source ID checking
- no_x2apic_optout
- BIOS x2APIC opt-out request will be ignored
- nopost disable Interrupt Posting
- posted_msi
- enable MSIs delivered as posted interrupts
- iomem= Disable strict checking of access to MMIO memory
- strict regions from userspace.
- relaxed
- iommu= [X86,EARLY]
- off
- force
- noforce
- biomerge
- panic
- nopanic
- merge
- nomerge
- soft
- pt [X86]
- nopt [X86]
- nobypass [PPC/POWERNV]
- Disable IOMMU bypass, using IOMMU for PCI devices.
- iommu.forcedac= [ARM64,X86,EARLY] Control IOVA allocation for PCI devices.
- Format: { "0" | "1" }
- 0 - Try to allocate a 32-bit DMA address first, before
- falling back to the full range if needed.
- 1 - Allocate directly from the full usable range,
- forcing Dual Address Cycle for PCI cards supporting
- greater than 32-bit addressing.
- iommu.strict= [ARM64,X86,S390,EARLY] Configure TLB invalidation behaviour
- Format: { "0" | "1" }
- 0 - Lazy mode.
- Request that DMA unmap operations use deferred
- invalidation of hardware TLBs, for increased
- throughput at the cost of reduced device isolation.
- Will fall back to strict mode if not supported by
- the relevant IOMMU driver.
- 1 - Strict mode.
- DMA unmap operations invalidate IOMMU hardware TLBs
- synchronously.
- unset - Use value of CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT}.
- Note: on x86, strict mode specified via one of the
- legacy driver-specific options takes precedence.
- iommu.passthrough=
- [ARM64,X86,EARLY] Configure DMA to bypass the IOMMU by default.
- Format: { "0" | "1" }
- 0 - Use IOMMU translation for DMA.
- 1 - Bypass the IOMMU for DMA.
- unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
- io7= [HW] IO7 for Marvel-based Alpha systems
- See comment before marvel_specify_io7 in
- arch/alpha/kernel/core_marvel.c.
- io_delay= [X86,EARLY] I/O delay method
- 0x80
- Standard port 0x80 based delay
- 0xed
- Alternate port 0xed based delay (needed on some systems)
- udelay
- Simple two microseconds delay
- none
- No delay
- ip= [IP_PNP]
- See Documentation/admin-guide/nfs/nfsroot.rst.
- ipcmni_extend [KNL,EARLY] Extend the maximum number of unique System V
- IPC identifiers from 32,768 to 16,777,216.
- ipe.enforce= [IPE]
- Format: <bool>
- Determine whether IPE starts in permissive (0) or
- enforce (1) mode. The default is enforce.
- ipe.success_audit=
- [IPE]
- Format: <bool>
- Start IPE with success auditing enabled, emitting
- an audit event when a binary is allowed. The default
- is 0.
- irqaffinity= [SMP] Set the default irq affinity mask
- The argument is a cpu list, as described above.
- irqchip.gicv2_force_probe=
- [ARM,ARM64,EARLY]
- Format: <bool>
- Force the kernel to look for the second 4kB page
- of a GICv2 controller even if the memory range
- exposed by the device tree is too small.
- irqchip.gicv3_nolpi=
- [ARM,ARM64,EARLY]
- Force the kernel to ignore the availability of
- LPIs (and by consequence ITSs). Intended for system
- that use the kernel as a bootloader, and thus want
- to let secondary kernels in charge of setting up
- LPIs.
- irqchip.gicv3_pseudo_nmi= [ARM64,EARLY]
- Enables support for pseudo-NMIs in the kernel. This
- requires the kernel to be built with
- CONFIG_ARM64_PSEUDO_NMI.
- irqfixup [HW]
- When an interrupt is not handled search all handlers
- for it. Intended to get systems with badly broken
- firmware running.
- irqpoll [HW]
- When an interrupt is not handled search all handlers
- for it. Also check all handlers each timer
- interrupt. Intended to get systems with badly broken
- firmware running.
- isapnp= [ISAPNP]
- Format: <RDP>,<reset>,<pci_scan>,<verbosity>
- isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
- [Deprecated - use cpusets instead]
- Format: [flag-list,]<cpu-list>
- Specify one or more CPUs to isolate from disturbances
- specified in the flag list (default: domain):
- nohz
- Disable the tick when a single task runs.
- A residual 1Hz tick is offloaded to workqueues, which you
- need to affine to housekeeping through the global
- workqueue's affinity configured via the
- /sys/devices/virtual/workqueue/cpumask sysfs file, or
- by using the 'domain' flag described below.
- NOTE: by default the global workqueue runs on all CPUs,
- so to protect individual CPUs the 'cpumask' file has to
- be configured manually after bootup.
- domain
- Isolate from the general SMP balancing and scheduling
- algorithms. Note that performing domain isolation this way
- is irreversible: it's not possible to bring back a CPU to
- the domains once isolated through isolcpus. It's strongly
- advised to use cpusets instead to disable scheduler load
- balancing through the "cpuset.sched_load_balance" file.
- It offers a much more flexible interface where CPUs can
- move in and out of an isolated set anytime.
- You can move a process onto or off an "isolated" CPU via
- the CPU affinity syscalls or cpuset.
- <cpu number> begins at 0 and the maximum value is
- "number of CPUs in system - 1".
- managed_irq
- Isolate from being targeted by managed interrupts
- which have an interrupt mask containing isolated
- CPUs. The affinity of managed interrupts is
- handled by the kernel and cannot be changed via
- the /proc/irq/* interfaces.
- This isolation is best effort and only effective
- if the automatically assigned interrupt mask of a
- device queue contains isolated and housekeeping
- CPUs. If housekeeping CPUs are online then such
- interrupts are directed to the housekeeping CPU
- so that IO submitted on the housekeeping CPU
- cannot disturb the isolated CPU.
- If a queue's affinity mask contains only isolated
- CPUs then this parameter has no effect on the
- interrupt routing decision, though interrupts are
- only delivered when tasks running on those
- isolated CPUs submit IO. IO submitted on
- housekeeping CPUs has no influence on those
- queues.
- The format of <cpu-list> is described above.
- iucv= [HW,NET]
- ivrs_ioapic [HW,X86-64]
- Provide an override to the IOAPIC-ID<->DEVICE-ID
- mapping provided in the IVRS ACPI table.
- By default, PCI segment is 0, and can be omitted.
- For example, to map IOAPIC-ID decimal 10 to
- PCI segment 0x1 and PCI device 00:14.0,
- write the parameter as:
- ivrs_ioapic=10@0001:00:14.0
- Deprecated formats:
- * To map IOAPIC-ID decimal 10 to PCI device 00:14.0
- write the parameter as:
- ivrs_ioapic[10]=00:14.0
- * To map IOAPIC-ID decimal 10 to PCI segment 0x1 and
- PCI device 00:14.0 write the parameter as:
- ivrs_ioapic[10]=0001:00:14.0
- ivrs_hpet [HW,X86-64]
- Provide an override to the HPET-ID<->DEVICE-ID
- mapping provided in the IVRS ACPI table.
- By default, PCI segment is 0, and can be omitted.
- For example, to map HPET-ID decimal 10 to
- PCI segment 0x1 and PCI device 00:14.0,
- write the parameter as:
- ivrs_hpet=10@0001:00:14.0
- Deprecated formats:
- * To map HPET-ID decimal 0 to PCI device 00:14.0
- write the parameter as:
- ivrs_hpet[0]=00:14.0
- * To map HPET-ID decimal 10 to PCI segment 0x1 and
- PCI device 00:14.0 write the parameter as:
- ivrs_ioapic[10]=0001:00:14.0
- ivrs_acpihid [HW,X86-64]
- Provide an override to the ACPI-HID:UID<->DEVICE-ID
- mapping provided in the IVRS ACPI table.
- By default, PCI segment is 0, and can be omitted.
- For example, to map UART-HID:UID AMD0020:0 to
- PCI segment 0x1 and PCI device ID 00:14.5,
- write the parameter as:
- ivrs_acpihid=AMD0020:0@0001:00:14.5
- Deprecated formats:
- * To map UART-HID:UID AMD0020:0 to PCI segment is 0,
- PCI device ID 00:14.5, write the parameter as:
- ivrs_acpihid[00:14.5]=AMD0020:0
- * To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and
- PCI device ID 00:14.5, write the parameter as:
- ivrs_acpihid[0001:00:14.5]=AMD0020:0
- js= [HW,JOY] Analog joystick
- See Documentation/input/joydev/joystick.rst.
- kasan_multi_shot
- [KNL] Enforce KASAN (Kernel Address Sanitizer) to print
- report on every invalid memory access. Without this
- parameter KASAN will print report only for the first
- invalid access.
- keep_bootcon [KNL,EARLY]
- Do not unregister boot console at start. This is only
- useful for debugging when something happens in the window
- between unregistering the boot console and initializing
- the real console.
- keepinitrd [HW,ARM] See retain_initrd.
- kernelcore= [KNL,X86,PPC,EARLY]
- Format: nn[KMGTPE] | nn% | "mirror"
- This parameter specifies the amount of memory usable by
- the kernel for non-movable allocations. The requested
- amount is spread evenly throughout all nodes in the
- system as ZONE_NORMAL. The remaining memory is used for
- movable memory in its own zone, ZONE_MOVABLE. In the
- event, a node is too small to have both ZONE_NORMAL and
- ZONE_MOVABLE, kernelcore memory will take priority and
- other nodes will have a larger ZONE_MOVABLE.
- ZONE_MOVABLE is used for the allocation of pages that
- may be reclaimed or moved by the page migration
- subsystem. Note that allocations like PTEs-from-HighMem
- still use the HighMem zone if it exists, and the Normal
- zone if it does not.
- It is possible to specify the exact amount of memory in
- the form of "nn[KMGTPE]", a percentage of total system
- memory in the form of "nn%", or "mirror". If "mirror"
- option is specified, mirrored (reliable) memory is used
- for non-movable allocations and remaining memory is used
- for Movable pages. "nn[KMGTPE]", "nn%", and "mirror"
- are exclusive, so you cannot specify multiple forms.
- kgdbdbgp= [KGDB,HW,EARLY] kgdb over EHCI usb debug port.
- Format: <Controller#>[,poll interval]
- The controller # is the number of the ehci usb debug
- port as it is probed via PCI. The poll interval is
- optional and is the number seconds in between
- each poll cycle to the debug port in case you need
- the functionality for interrupting the kernel with
- gdb or control-c on the dbgp connection. When
- not using this parameter you use sysrq-g to break into
- the kernel debugger.
- kgdboc= [KGDB,HW] kgdb over consoles.
- Requires a tty driver that supports console polling,
- or a supported polling keyboard driver (non-usb).
- Serial only format: <serial_device>[,baud]
- keyboard only format: kbd
- keyboard and serial format: kbd,<serial_device>[,baud]
- Optional Kernel mode setting:
- kms, kbd format: kms,kbd
- kms, kbd and serial format: kms,kbd,<ser_dev>[,baud]
- kgdboc_earlycon= [KGDB,HW,EARLY]
- If the boot console provides the ability to read
- characters and can work in polling mode, you can use
- this parameter to tell kgdb to use it as a backend
- until the normal console is registered. Intended to
- be used together with the kgdboc parameter which
- specifies the normal console to transition to.
- The name of the early console should be specified
- as the value of this parameter. Note that the name of
- the early console might be different than the tty
- name passed to kgdboc. It's OK to leave the value
- blank and the first boot console that implements
- read() will be picked.
- kgdbwait [KGDB,EARLY] Stop kernel execution and enter the
- kernel debugger at the earliest opportunity.
- kmac= [MIPS] Korina ethernet MAC address.
- Configure the RouterBoard 532 series on-chip
- Ethernet adapter MAC address.
- kmemleak= [KNL,EARLY] Boot-time kmemleak enable/disable
- Valid arguments: on, off
- Default: on
- Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
- the default is off.
- kprobe_event=[probe-list]
- [FTRACE] Add kprobe events and enable at boot time.
- The probe-list is a semicolon delimited list of probe
- definitions. Each definition is same as kprobe_events
- interface, but the parameters are comma delimited.
- For example, to add a kprobe event on vfs_read with
- arg1 and arg2, add to the command line;
- kprobe_event=p,vfs_read,$arg1,$arg2
- See also Documentation/trace/kprobetrace.rst "Kernel
- Boot Parameter" section.
- kpti= [ARM64,EARLY] Control page table isolation of
- user and kernel address spaces.
- Default: enabled on cores which need mitigation.
- 0: force disabled
- 1: force enabled
- kunit.enable= [KUNIT] Enable executing KUnit tests. Requires
- CONFIG_KUNIT to be set to be fully enabled. The
- default value can be overridden via
- KUNIT_DEFAULT_ENABLED.
- Default is 1 (enabled)
- kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
- Default is 0 (don't ignore, but inject #GP)
- kvm.eager_page_split=
- [KVM,X86] Controls whether or not KVM will try to
- proactively split all huge pages during dirty logging.
- Eager page splitting reduces interruptions to vCPU
- execution by eliminating the write-protection faults
- and MMU lock contention that would otherwise be
- required to split huge pages lazily.
- VM workloads that rarely perform writes or that write
- only to a small region of VM memory may benefit from
- disabling eager page splitting to allow huge pages to
- still be used for reads.
- The behavior of eager page splitting depends on whether
- KVM_DIRTY_LOG_INITIALLY_SET is enabled or disabled. If
- disabled, all huge pages in a memslot will be eagerly
- split when dirty logging is enabled on that memslot. If
- enabled, eager page splitting will be performed during
- the KVM_CLEAR_DIRTY ioctl, and only for the pages being
- cleared.
- Eager page splitting is only supported when kvm.tdp_mmu=Y.
- Default is Y (on).
- kvm.enable_virt_at_load=[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86]
- If enabled, KVM will enable virtualization in hardware
- when KVM is loaded, and disable virtualization when KVM
- is unloaded (if KVM is built as a module).
- If disabled, KVM will dynamically enable and disable
- virtualization on-demand when creating and destroying
- VMs, i.e. on the 0=>1 and 1=>0 transitions of the
- number of VMs.
- Enabling virtualization at module lode avoids potential
- latency for creation of the 0=>1 VM, as KVM serializes
- virtualization enabling across all online CPUs. The
- "cost" of enabling virtualization when KVM is loaded,
- is that doing so may interfere with using out-of-tree
- hypervisors that want to "own" virtualization hardware.
- kvm.enable_vmware_backdoor=[KVM] Support VMware backdoor PV interface.
- Default is false (don't support).
- kvm.nx_huge_pages=
- [KVM] Controls the software workaround for the
- X86_BUG_ITLB_MULTIHIT bug.
- force : Always deploy workaround.
- off : Never deploy workaround.
- auto : Deploy workaround based on the presence of
- X86_BUG_ITLB_MULTIHIT.
- Default is 'auto'.
- If the software workaround is enabled for the host,
- guests do need not to enable it for nested guests.
- kvm.nx_huge_pages_recovery_ratio=
- [KVM] Controls how many 4KiB pages are periodically zapped
- back to huge pages. 0 disables the recovery, otherwise if
- the value is N KVM will zap 1/Nth of the 4KiB pages every
- period (see below). The default is 60.
- kvm.nx_huge_pages_recovery_period_ms=
- [KVM] Controls the time period at which KVM zaps 4KiB pages
- back to huge pages. If the value is a non-zero N, KVM will
- zap a portion (see ratio above) of the pages every N msecs.
- If the value is 0 (the default), KVM will pick a period based
- on the ratio, such that a page is zapped after 1 hour on average.
- kvm-amd.nested= [KVM,AMD] Control nested virtualization feature in
- KVM/SVM. Default is 1 (enabled).
- kvm-amd.npt= [KVM,AMD] Control KVM's use of Nested Page Tables,
- a.k.a. Two-Dimensional Page Tables. Default is 1
- (enabled). Disable by KVM if hardware lacks support
- for NPT.
- kvm-arm.mode=
- [KVM,ARM,EARLY] Select one of KVM/arm64's modes of
- operation.
- none: Forcefully disable KVM.
- nvhe: Standard nVHE-based mode, without support for
- protected guests.
- protected: nVHE-based mode with support for guests whose
- state is kept private from the host.
- nested: VHE-based mode with support for nested
- virtualization. Requires at least ARMv8.3
- hardware.
- Defaults to VHE/nVHE based on hardware support. Setting
- mode to "protected" will disable kexec and hibernation
- for the host. "nested" is experimental and should be
- used with extreme caution.
- kvm-arm.vgic_v3_group0_trap=
- [KVM,ARM,EARLY] Trap guest accesses to GICv3 group-0
- system registers
- kvm-arm.vgic_v3_group1_trap=
- [KVM,ARM,EARLY] Trap guest accesses to GICv3 group-1
- system registers
- kvm-arm.vgic_v3_common_trap=
- [KVM,ARM,EARLY] Trap guest accesses to GICv3 common
- system registers
- kvm-arm.vgic_v4_enable=
- [KVM,ARM,EARLY] Allow use of GICv4 for direct
- injection of LPIs.
- kvm-arm.wfe_trap_policy=
- [KVM,ARM] Control when to set WFE instruction trap for
- KVM VMs. Traps are allowed but not guaranteed by the
- CPU architecture.
- trap: set WFE instruction trap
- notrap: clear WFE instruction trap
- kvm-arm.wfi_trap_policy=
- [KVM,ARM] Control when to set WFI instruction trap for
- KVM VMs. Traps are allowed but not guaranteed by the
- CPU architecture.
- trap: set WFI instruction trap
- notrap: clear WFI instruction trap
- kvm_cma_resv_ratio=n [PPC,EARLY]
- Reserves given percentage from system memory area for
- contiguous memory allocation for KVM hash pagetable
- allocation.
- By default it reserves 5% of total system memory.
- Format: <integer>
- Default: 5
- kvm-intel.ept= [KVM,Intel] Control KVM's use of Extended Page Tables,
- a.k.a. Two-Dimensional Page Tables. Default is 1
- (enabled). Disable by KVM if hardware lacks support
- for EPT.
- kvm-intel.emulate_invalid_guest_state=
- [KVM,Intel] Control whether to emulate invalid guest
- state. Ignored if kvm-intel.enable_unrestricted_guest=1,
- as guest state is never invalid for unrestricted
- guests. This param doesn't apply to nested guests (L2),
- as KVM never emulates invalid L2 guest state.
- Default is 1 (enabled).
- kvm-intel.flexpriority=
- [KVM,Intel] Control KVM's use of FlexPriority feature
- (TPR shadow). Default is 1 (enabled). Disable by KVM if
- hardware lacks support for it.
- kvm-intel.nested=
- [KVM,Intel] Control nested virtualization feature in
- KVM/VMX. Default is 1 (enabled).
- kvm-intel.unrestricted_guest=
- [KVM,Intel] Control KVM's use of unrestricted guest
- feature (virtualized real and unpaged mode). Default
- is 1 (enabled). Disable by KVM if EPT is disabled or
- hardware lacks support for it.
- kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault
- CVE-2018-3620.
- Valid arguments: never, cond, always
- always: L1D cache flush on every VMENTER.
- cond: Flush L1D on VMENTER only when the code between
- VMEXIT and VMENTER can leak host memory.
- never: Disables the mitigation
- Default is cond (do L1 cache flush in specific instances)
- kvm-intel.vpid= [KVM,Intel] Control KVM's use of Virtual Processor
- Identification feature (tagged TLBs). Default is 1
- (enabled). Disable by KVM if hardware lacks support
- for it.
- l1d_flush= [X86,INTEL,EARLY]
- Control mitigation for L1D based snooping vulnerability.
- Certain CPUs are vulnerable to an exploit against CPU
- internal buffers which can forward information to a
- disclosure gadget under certain conditions.
- In vulnerable processors, the speculatively
- forwarded data can be used in a cache side channel
- attack, to access data to which the attacker does
- not have direct access.
- This parameter controls the mitigation. The
- options are:
- on - enable the interface for the mitigation
- l1tf= [X86,EARLY] Control mitigation of the L1TF vulnerability on
- affected CPUs
- The kernel PTE inversion protection is unconditionally
- enabled and cannot be disabled.
- full
- Provides all available mitigations for the
- L1TF vulnerability. Disables SMT and
- enables all mitigations in the
- hypervisors, i.e. unconditional L1D flush.
- SMT control and L1D flush control via the
- sysfs interface is still possible after
- boot. Hypervisors will issue a warning
- when the first VM is started in a
- potentially insecure configuration,
- i.e. SMT enabled or L1D flush disabled.
- full,force
- Same as 'full', but disables SMT and L1D
- flush runtime control. Implies the
- 'nosmt=force' command line option.
- (i.e. sysfs control of SMT is disabled.)
- flush
- Leaves SMT enabled and enables the default
- hypervisor mitigation, i.e. conditional
- L1D flush.
- SMT control and L1D flush control via the
- sysfs interface is still possible after
- boot. Hypervisors will issue a warning
- when the first VM is started in a
- potentially insecure configuration,
- i.e. SMT enabled or L1D flush disabled.
- flush,nosmt
- Disables SMT and enables the default
- hypervisor mitigation.
- SMT control and L1D flush control via the
- sysfs interface is still possible after
- boot. Hypervisors will issue a warning
- when the first VM is started in a
- potentially insecure configuration,
- i.e. SMT enabled or L1D flush disabled.
- flush,nowarn
- Same as 'flush', but hypervisors will not
- warn when a VM is started in a potentially
- insecure configuration.
- off
- Disables hypervisor mitigations and doesn't
- emit any warnings.
- It also drops the swap size and available
- RAM limit restriction on both hypervisor and
- bare metal.
- Default is 'flush'.
- For details see: Documentation/admin-guide/hw-vuln/l1tf.rst
- l2cr= [PPC]
- l3cr= [PPC]
- lapic [X86-32,APIC,EARLY] Enable the local APIC even if BIOS
- disabled it.
- lapic= [X86,APIC] Do not use TSC deadline
- value for LAPIC timer one-shot implementation. Default
- back to the programmable timer unit in the LAPIC.
- Format: notscdeadline
- lapic_timer_c2_ok [X86,APIC,EARLY] trust the local apic timer
- in C2 power state.
- libata.dma= [LIBATA] DMA control
- libata.dma=0 Disable all PATA and SATA DMA
- libata.dma=1 PATA and SATA Disk DMA only
- libata.dma=2 ATAPI (CDROM) DMA only
- libata.dma=4 Compact Flash DMA only
- Combinations also work, so libata.dma=3 enables DMA
- for disks and CDROMs, but not CFs.
- libata.ignore_hpa= [LIBATA] Ignore HPA limit
- libata.ignore_hpa=0 keep BIOS limits (default)
- libata.ignore_hpa=1 ignore limits, using full disk
- libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume
- when set.
- Format: <int>
- libata.force= [LIBATA] Force configurations. The format is a comma-
- separated list of "[ID:]VAL" where ID is PORT[.DEVICE].
- PORT and DEVICE are decimal numbers matching port, link
- or device. Basically, it matches the ATA ID string
- printed on console by libata. If the whole ID part is
- omitted, the last PORT and DEVICE values are used. If
- ID hasn't been specified yet, the configuration applies
- to all ports, links and devices.
- If only DEVICE is omitted, the parameter applies to
- the port and all links and devices behind it. DEVICE
- number of 0 either selects the first device or the
- first fan-out link behind PMP device. It does not
- select the host link. DEVICE number of 15 selects the
- host link and device attached to it.
- The VAL specifies the configuration to force. As long
- as there is no ambiguity, shortcut notation is allowed.
- For example, both 1.5 and 1.5G would work for 1.5Gbps.
- The following configurations can be forced.
- * Cable type: 40c, 80c, short40c, unk, ign or sata.
- Any ID with matching PORT is used.
- * SATA link speed limit: 1.5Gbps or 3.0Gbps.
- * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
- udma[/][16,25,33,44,66,100,133] notation is also
- allowed.
- * nohrst, nosrst, norst: suppress hard, soft and both
- resets.
- * rstonce: only attempt one reset during hot-unplug
- link recovery.
- * [no]dbdelay: Enable or disable the extra 200ms delay
- before debouncing a link PHY and device presence
- detection.
- * [no]ncq: Turn on or off NCQ.
- * [no]ncqtrim: Enable or disable queued DSM TRIM.
- * [no]ncqati: Enable or disable NCQ trim on ATI chipset.
- * [no]trim: Enable or disable (unqueued) TRIM.
- * trim_zero: Indicate that TRIM command zeroes data.
- * max_trim_128m: Set 128M maximum trim size limit.
- * [no]dma: Turn on or off DMA transfers.
- * atapi_dmadir: Enable ATAPI DMADIR bridge support.
- * atapi_mod16_dma: Enable the use of ATAPI DMA for
- commands that are not a multiple of 16 bytes.
- * [no]dmalog: Enable or disable the use of the
- READ LOG DMA EXT command to access logs.
- * [no]iddevlog: Enable or disable access to the
- identify device data log.
- * [no]logdir: Enable or disable access to the general
- purpose log directory.
- * max_sec_128: Set transfer size limit to 128 sectors.
- * max_sec_1024: Set or clear transfer size limit to
- 1024 sectors.
- * max_sec_lba48: Set or clear transfer size limit to
- 65535 sectors.
- * external: Mark port as external (hotplug-capable).
- * [no]lpm: Enable or disable link power management.
- * [no]setxfer: Indicate if transfer speed mode setting
- should be skipped.
- * [no]fua: Disable or enable FUA (Force Unit Access)
- support for devices supporting this feature.
- * dump_id: Dump IDENTIFY data.
- * disable: Disable this device.
- If there are multiple matching configurations changing
- the same attribute, the last one is used.
- load_ramdisk= [RAM] [Deprecated]
- lockd.nlm_grace_period=P [NFS] Assign grace period.
- Format: <integer>
- lockd.nlm_tcpport=N [NFS] Assign TCP port.
- Format: <integer>
- lockd.nlm_timeout=T [NFS] Assign timeout value.
- Format: <integer>
- lockd.nlm_udpport=M [NFS] Assign UDP port.
- Format: <integer>
- lockdown= [SECURITY,EARLY]
- { integrity | confidentiality }
- Enable the kernel lockdown feature. If set to
- integrity, kernel features that allow userland to
- modify the running kernel are disabled. If set to
- confidentiality, kernel features that allow userland
- to extract confidential information from the kernel
- are also disabled.
- locktorture.acq_writer_lim= [KNL]
- Set the time limit in jiffies for a lock
- acquisition. Acquisitions exceeding this limit
- will result in a splat once they do complete.
- locktorture.bind_readers= [KNL]
- Specify the list of CPUs to which the readers are
- to be bound.
- locktorture.bind_writers= [KNL]
- Specify the list of CPUs to which the writers are
- to be bound.
- locktorture.call_rcu_chains= [KNL]
- Specify the number of self-propagating call_rcu()
- chains to set up. These are used to ensure that
- there is a high probability of an RCU grace period
- in progress at any given time. Defaults to 0,
- which disables these call_rcu() chains.
- locktorture.long_hold= [KNL]
- Specify the duration in milliseconds for the
- occasional long-duration lock hold time. Defaults
- to 100 milliseconds. Select 0 to disable.
- locktorture.nested_locks= [KNL]
- Specify the maximum lock nesting depth that
- locktorture is to exercise, up to a limit of 8
- (MAX_NESTED_LOCKS). Specify zero to disable.
- Note that this parameter is ineffective on types
- of locks that do not support nested acquisition.
- locktorture.nreaders_stress= [KNL]
- Set the number of locking read-acquisition kthreads.
- Defaults to being automatically set based on the
- number of online CPUs.
- locktorture.nwriters_stress= [KNL]
- Set the number of locking write-acquisition kthreads.
- locktorture.onoff_holdoff= [KNL]
- Set time (s) after boot for CPU-hotplug testing.
- locktorture.onoff_interval= [KNL]
- Set time (s) between CPU-hotplug operations, or
- zero to disable CPU-hotplug testing.
- locktorture.rt_boost= [KNL]
- Do periodic testing of real-time lock priority
- boosting. Select 0 to disable, 1 to boost
- only rt_mutex, and 2 to boost unconditionally.
- Defaults to 2, which might seem to be an
- odd choice, but which should be harmless for
- non-real-time spinlocks, due to their disabling
- of preemption. Note that non-realtime mutexes
- disable boosting.
- locktorture.rt_boost_factor= [KNL]
- Number that determines how often and for how
- long priority boosting is exercised. This is
- scaled down by the number of writers, so that the
- number of boosts per unit time remains roughly
- constant as the number of writers increases.
- On the other hand, the duration of each boost
- increases with the number of writers.
- locktorture.shuffle_interval= [KNL]
- Set task-shuffle interval (jiffies). Shuffling
- tasks allows some CPUs to go into dyntick-idle
- mode during the locktorture test.
- locktorture.shutdown_secs= [KNL]
- Set time (s) after boot system shutdown. This
- is useful for hands-off automated testing.
- locktorture.stat_interval= [KNL]
- Time (s) between statistics printk()s.
- locktorture.stutter= [KNL]
- Time (s) to stutter testing, for example,
- specifying five seconds causes the test to run for
- five seconds, wait for five seconds, and so on.
- This tests the locking primitive's ability to
- transition abruptly to and from idle.
- locktorture.torture_type= [KNL]
- Specify the locking implementation to test.
- locktorture.verbose= [KNL]
- Enable additional printk() statements.
- locktorture.writer_fifo= [KNL]
- Run the write-side locktorture kthreads at
- sched_set_fifo() real-time priority.
- logibm.irq= [HW,MOUSE] Logitech Bus Mouse Driver
- Format: <irq>
- loglevel= [KNL,EARLY]
- All Kernel Messages with a loglevel smaller than the
- console loglevel will be printed to the console. It can
- also be changed with klogd or other programs. The
- loglevels are defined as follows:
- 0 (KERN_EMERG) system is unusable
- 1 (KERN_ALERT) action must be taken immediately
- 2 (KERN_CRIT) critical conditions
- 3 (KERN_ERR) error conditions
- 4 (KERN_WARNING) warning conditions
- 5 (KERN_NOTICE) normal but significant condition
- 6 (KERN_INFO) informational
- 7 (KERN_DEBUG) debug-level messages
- log_buf_len=n[KMG] [KNL,EARLY]
- Sets the size of the printk ring buffer, in bytes.
- n must be a power of two and greater than the
- minimal size. The minimal size is defined by
- LOG_BUF_SHIFT kernel config parameter. There
- is also CONFIG_LOG_CPU_MAX_BUF_SHIFT config
- parameter that allows to increase the default size
- depending on the number of CPUs. See init/Kconfig
- for more details.
- logo.nologo [FB] Disables display of the built-in Linux logo.
- This may be used to provide more screen space for
- kernel log messages and is useful when debugging
- kernel boot problems.
- lp=0 [LP] Specify parallel ports to use, e.g,
- lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses
- lp=reset first parallel port). 'lp=0' disables the
- lp=auto printer driver. 'lp=reset' (which can be
- specified in addition to the ports) causes
- attached printers to be reset. Using
- lp=port1,port2,... specifies the parallel ports
- to associate lp devices with, starting with
- lp0. A port specification may be 'none' to skip
- that lp device, or a parport name such as
- 'parport0'. Specifying 'lp=auto' instead of a
- port specification list means that device IDs
- from each port should be examined, to see if
- an IEEE 1284-compliant printer is attached; if
- so, the driver will manage that printer.
- See also header of drivers/char/lp.c.
- lpj=n [KNL]
- Sets loops_per_jiffy to given constant, thus avoiding
- time-consuming boot-time autodetection (up to 250 ms per
- CPU). 0 enables autodetection (default). To determine
- the correct value for your kernel, boot with normal
- autodetection and see what value is printed. Note that
- on SMP systems the preset will be applied to all CPUs,
- which is likely to cause problems if your CPUs need
- significantly divergent settings. An incorrect value
- will cause delays in the kernel to be wrong, leading to
- unpredictable I/O errors and other breakage. Although
- unlikely, in the extreme case this might damage your
- hardware.
- lsm.debug [SECURITY] Enable LSM initialization debugging output.
- lsm=lsm1,...,lsmN
- [SECURITY] Choose order of LSM initialization. This
- overrides CONFIG_LSM, and the "security=" parameter.
- machtype= [Loongson] Share the same kernel image file between
- different yeeloong laptops.
- Example: machtype=lemote-yeeloong-2f-7inch
- maxcpus= [SMP,EARLY] Maximum number of processors that an SMP kernel
- will bring up during bootup. maxcpus=n : n >= 0 limits
- the kernel to bring up 'n' processors. Surely after
- bootup you can bring up the other plugged cpu by executing
- "echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus
- only takes effect during system bootup.
- While n=0 is a special case, it is equivalent to "nosmp",
- which also disables the IO APIC.
- max_loop= [LOOP] The number of loop block devices that get
- (loop.max_loop) unconditionally pre-created at init time. The default
- number is configured by BLK_DEV_LOOP_MIN_COUNT. Instead
- of statically allocating a predefined number, loop
- devices can be requested on-demand with the
- /dev/loop-control interface.
- mce [X86-32] Machine Check Exception
- mce=option [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
- md= [HW] RAID subsystems devices and level
- See Documentation/admin-guide/md.rst.
- mdacon= [MDA]
- Format: <first>,<last>
- Specifies range of consoles to be captured by the MDA.
- mds= [X86,INTEL,EARLY]
- Control mitigation for the Micro-architectural Data
- Sampling (MDS) vulnerability.
- Certain CPUs are vulnerable to an exploit against CPU
- internal buffers which can forward information to a
- disclosure gadget under certain conditions.
- In vulnerable processors, the speculatively
- forwarded data can be used in a cache side channel
- attack, to access data to which the attacker does
- not have direct access.
- This parameter controls the MDS mitigation. The
- options are:
- full - Enable MDS mitigation on vulnerable CPUs
- full,nosmt - Enable MDS mitigation and disable
- SMT on vulnerable CPUs
- off - Unconditionally disable MDS mitigation
- On TAA-affected machines, mds=off can be prevented by
- an active TAA mitigation as both vulnerabilities are
- mitigated with the same mechanism so in order to disable
- this mitigation, you need to specify tsx_async_abort=off
- too.
- Not specifying this option is equivalent to
- mds=full.
- For details see: Documentation/admin-guide/hw-vuln/mds.rst
- mem=nn[KMG] [HEXAGON,EARLY] Set the memory size.
- Must be specified, otherwise memory size will be 0.
- mem=nn[KMG] [KNL,BOOT,EARLY] Force usage of a specific amount
- of memory Amount of memory to be used in cases
- as follows:
- 1 for test;
- 2 when the kernel is not able to see the whole system memory;
- 3 memory that lies after 'mem=' boundary is excluded from
- the hypervisor, then assigned to KVM guests.
- 4 to limit the memory available for kdump kernel.
- [ARC,MICROBLAZE] - the limit applies only to low memory,
- high memory is not affected.
- [ARM64] - only limits memory covered by the linear
- mapping. The NOMAP regions are not affected.
- [X86] Work as limiting max address. Use together
- with memmap= to avoid physical address space collisions.
- Without memmap= PCI devices could be placed at addresses
- belonging to unused RAM.
- Note that this only takes effects during boot time since
- in above case 3, memory may need be hot added after boot
- if system memory of hypervisor is not sufficient.
- mem=nn[KMG]@ss[KMG]
- [ARM,MIPS,EARLY] - override the memory layout
- reported by firmware.
- Define a memory region of size nn[KMG] starting at
- ss[KMG].
- Multiple different regions can be specified with
- multiple mem= parameters on the command line.
- mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel
- memory.
- memblock=debug [KNL,EARLY] Enable memblock debug messages.
- memchunk=nn[KMG]
- [KNL,SH] Allow user to override the default size for
- per-device physically contiguous DMA buffers.
- memhp_default_state=online/offline/online_kernel/online_movable
- [KNL] Set the initial state for the memory hotplug
- onlining policy. If not specified, the default value is
- set according to the
- CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel config
- option.
- See Documentation/admin-guide/mm/memory-hotplug.rst.
- memmap=exactmap [KNL,X86,EARLY] Enable setting of an exact
- E820 memory map, as specified by the user.
- Such memmap=exactmap lines can be constructed based on
- BIOS output or other requirements. See the memmap=nn@ss
- option description.
- memmap=nn[KMG]@ss[KMG]
- [KNL, X86,MIPS,XTENSA,EARLY] Force usage of a specific region of memory.
- Region of memory to be used is from ss to ss+nn.
- If @ss[KMG] is omitted, it is equivalent to mem=nn[KMG],
- which limits max address to nn[KMG].
- Multiple different regions can be specified,
- comma delimited.
- Example:
- memmap=100M@2G,100M#3G,1G!1024G
- memmap=nn[KMG]#ss[KMG]
- [KNL,ACPI,EARLY] Mark specific memory as ACPI data.
- Region of memory to be marked is from ss to ss+nn.
- memmap=nn[KMG]$ss[KMG]
- [KNL,ACPI,EARLY] Mark specific memory as reserved.
- Region of memory to be reserved is from ss to ss+nn.
- Example: Exclude memory from 0x18690000-0x1869ffff
- memmap=64K$0x18690000
- or
- memmap=0x10000$0x18690000
- Some bootloaders may need an escape character before '$',
- like Grub2, otherwise '$' and the following number
- will be eaten.
- memmap=nn[KMG]!ss[KMG,EARLY]
- [KNL,X86] Mark specific memory as protected.
- Region of memory to be used, from ss to ss+nn.
- The memory region may be marked as e820 type 12 (0xc)
- and is NVDIMM or ADR memory.
- memmap=<size>%<offset>-<oldtype>+<newtype>
- [KNL,ACPI,EARLY] Convert memory within the specified region
- from <oldtype> to <newtype>. If "-<oldtype>" is left
- out, the whole region will be marked as <newtype>,
- even if previously unavailable. If "+<newtype>" is left
- out, matching memory will be removed. Types are
- specified as e820 types, e.g., 1 = RAM, 2 = reserved,
- 3 = ACPI, 12 = PRAM.
- memory_corruption_check=0/1 [X86,EARLY]
- Some BIOSes seem to corrupt the first 64k of
- memory when doing things like suspend/resume.
- Setting this option will scan the memory
- looking for corruption. Enabling this will
- both detect corruption and prevent the kernel
- from using the memory being corrupted.
- However, its intended as a diagnostic tool; if
- repeatable BIOS-originated corruption always
- affects the same memory, you can use memmap=
- to prevent the kernel from using that memory.
- memory_corruption_check_size=size [X86,EARLY]
- By default it checks for corruption in the low
- 64k, making this memory unavailable for normal
- use. Use this parameter to scan for
- corruption in more or less memory.
- memory_corruption_check_period=seconds [X86,EARLY]
- By default it checks for corruption every 60
- seconds. Use this parameter to check at some
- other rate. 0 disables periodic checking.
- memory_hotplug.memmap_on_memory
- [KNL,X86,ARM] Boolean flag to enable this feature.
- Format: {on | off (default)}
- When enabled, runtime hotplugged memory will
- allocate its internal metadata (struct pages,
- those vmemmap pages cannot be optimized even
- if hugetlb_free_vmemmap is enabled) from the
- hotadded memory which will allow to hotadd a
- lot of memory without requiring additional
- memory to do so.
- This feature is disabled by default because it
- has some implication on large (e.g. GB)
- allocations in some configurations (e.g. small
- memory blocks).
- The state of the flag can be read in
- /sys/module/memory_hotplug/parameters/memmap_on_memory.
- Note that even when enabled, there are a few cases where
- the feature is not effective.
- memtest= [KNL,X86,ARM,M68K,PPC,RISCV,EARLY] Enable memtest
- Format: <integer>
- default : 0 <disable>
- Specifies the number of memtest passes to be
- performed. Each pass selects another test
- pattern from a given set of patterns. Memtest
- fills the memory with this pattern, validates
- memory contents and reserves bad memory
- regions that are detected.
- mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control
- Valid arguments: on, off
- Default: off
- mem_encrypt=on: Activate SME
- mem_encrypt=off: Do not activate SME
- Refer to Documentation/virt/kvm/x86/amd-memory-encryption.rst
- for details on when memory encryption can be activated.
- mem_sleep_default= [SUSPEND] Default system suspend mode:
- s2idle - Suspend-To-Idle
- shallow - Power-On Suspend or equivalent (if supported)
- deep - Suspend-To-RAM or equivalent (if supported)
- See Documentation/admin-guide/pm/sleep-states.rst.
- mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms when
- the BIOS has incorrectly applied a workaround. TinyBIOS
- version 0.98 is known to be affected, 0.99 fixes the
- problem by letting the user disable the workaround.
- mga= [HW,DRM]
- microcode.force_minrev= [X86]
- Format: <bool>
- Enable or disable the microcode minimal revision
- enforcement for the runtime microcode loader.
- mini2440= [ARM,HW,KNL]
- Format:[0..2][b][c][t]
- Default: "0tb"
- MINI2440 configuration specification:
- 0 - The attached screen is the 3.5" TFT
- 1 - The attached screen is the 7" TFT
- 2 - The VGA Shield is attached (1024x768)
- Leaving out the screen size parameter will not load
- the TFT driver, and the framebuffer will be left
- unconfigured.
- b - Enable backlight. The TFT backlight pin will be
- linked to the kernel VESA blanking code and a GPIO
- LED. This parameter is not necessary when using the
- VGA shield.
- c - Enable the s3c camera interface.
- t - Reserved for enabling touchscreen support. The
- touchscreen support is not enabled in the mainstream
- kernel as of 2.6.30, a preliminary port can be found
- in the "bleeding edge" mini2440 support kernel at
- https://repo.or.cz/w/linux-2.6/mini2440.git
- mitigations=
- [X86,PPC,S390,ARM64,EARLY] Control optional mitigations for
- CPU vulnerabilities. This is a set of curated,
- arch-independent options, each of which is an
- aggregation of existing arch-specific options.
- Note, "mitigations" is supported if and only if the
- kernel was built with CPU_MITIGATIONS=y.
- off
- Disable all optional CPU mitigations. This
- improves system performance, but it may also
- expose users to several CPU vulnerabilities.
- Equivalent to: if nokaslr then kpti=0 [ARM64]
- gather_data_sampling=off [X86]
- indirect_target_selection=off [X86]
- kvm.nx_huge_pages=off [X86]
- l1tf=off [X86]
- mds=off [X86]
- mmio_stale_data=off [X86]
- no_entry_flush [PPC]
- no_uaccess_flush [PPC]
- nobp=0 [S390]
- nopti [X86,PPC]
- nospectre_bhb [ARM64]
- nospectre_v1 [X86,PPC]
- nospectre_v2 [X86,PPC,S390,ARM64]
- reg_file_data_sampling=off [X86]
- retbleed=off [X86]
- spec_rstack_overflow=off [X86]
- spec_store_bypass_disable=off [X86,PPC]
- spectre_bhi=off [X86]
- spectre_v2_user=off [X86]
- srbds=off [X86,INTEL]
- ssbd=force-off [ARM64]
- tsx_async_abort=off [X86]
- vmscape=off [X86]
- Exceptions:
- This does not have any effect on
- kvm.nx_huge_pages when
- kvm.nx_huge_pages=force.
- auto (default)
- Mitigate all CPU vulnerabilities, but leave SMT
- enabled, even if it's vulnerable. This is for
- users who don't want to be surprised by SMT
- getting disabled across kernel upgrades, or who
- have other ways of avoiding SMT-based attacks.
- Equivalent to: (default behavior)
- auto,nosmt
- Mitigate all CPU vulnerabilities, disabling SMT
- if needed. This is for users who always want to
- be fully mitigated, even if it means losing SMT.
- Equivalent to: l1tf=flush,nosmt [X86]
- mds=full,nosmt [X86]
- tsx_async_abort=full,nosmt [X86]
- mmio_stale_data=full,nosmt [X86]
- retbleed=auto,nosmt [X86]
- mminit_loglevel=
- [KNL,EARLY] When CONFIG_DEBUG_MEMORY_INIT is set, this
- parameter allows control of the logging verbosity for
- the additional memory initialisation checks. A value
- of 0 disables mminit logging and a level of 4 will
- log everything. Information is printed at KERN_DEBUG
- so loglevel=8 may also need to be specified.
- mmio_stale_data=
- [X86,INTEL,EARLY] Control mitigation for the Processor
- MMIO Stale Data vulnerabilities.
- Processor MMIO Stale Data is a class of
- vulnerabilities that may expose data after an MMIO
- operation. Exposed data could originate or end in
- the same CPU buffers as affected by MDS and TAA.
- Therefore, similar to MDS and TAA, the mitigation
- is to clear the affected CPU buffers.
- This parameter controls the mitigation. The
- options are:
- full - Enable mitigation on vulnerable CPUs
- full,nosmt - Enable mitigation and disable SMT on
- vulnerable CPUs.
- off - Unconditionally disable mitigation
- On MDS or TAA affected machines,
- mmio_stale_data=off can be prevented by an active
- MDS or TAA mitigation as these vulnerabilities are
- mitigated with the same mechanism so in order to
- disable this mitigation, you need to specify
- mds=off and tsx_async_abort=off too.
- Not specifying this option is equivalent to
- mmio_stale_data=full.
- For details see:
- Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
- <module>.async_probe[=<bool>] [KNL]
- If no <bool> value is specified or if the value
- specified is not a valid <bool>, enable asynchronous
- probe on this module. Otherwise, enable/disable
- asynchronous probe on this module as indicated by the
- <bool> value. See also: module.async_probe
- module.async_probe=<bool>
- [KNL] When set to true, modules will use async probing
- by default. To enable/disable async probing for a
- specific module, use the module specific control that
- is documented under <module>.async_probe. When both
- module.async_probe and <module>.async_probe are
- specified, <module>.async_probe takes precedence for
- the specific module.
- module.enable_dups_trace
- [KNL] When CONFIG_MODULE_DEBUG_AUTOLOAD_DUPS is set,
- this means that duplicate request_module() calls will
- trigger a WARN_ON() instead of a pr_warn(). Note that
- if MODULE_DEBUG_AUTOLOAD_DUPS_TRACE is set, WARN_ON()s
- will always be issued and this option does nothing.
- module.sig_enforce
- [KNL] When CONFIG_MODULE_SIG is set, this means that
- modules without (valid) signatures will fail to load.
- Note that if CONFIG_MODULE_SIG_FORCE is set, that
- is always true, so this option does nothing.
- module_blacklist= [KNL] Do not load a comma-separated list of
- modules. Useful for debugging problem modules.
- mousedev.tap_time=
- [MOUSE] Maximum time between finger touching and
- leaving touchpad surface for touch to be considered
- a tap and be reported as a left button click (for
- touchpads working in absolute mode only).
- Format: <msecs>
- mousedev.xres= [MOUSE] Horizontal screen resolution, used for devices
- reporting absolute coordinates, such as tablets
- mousedev.yres= [MOUSE] Vertical screen resolution, used for devices
- reporting absolute coordinates, such as tablets
- movablecore= [KNL,X86,PPC,EARLY]
- Format: nn[KMGTPE] | nn%
- This parameter is the complement to kernelcore=, it
- specifies the amount of memory used for migratable
- allocations. If both kernelcore and movablecore is
- specified, then kernelcore will be at *least* the
- specified value but may be more. If movablecore on its
- own is specified, the administrator must be careful
- that the amount of memory usable for all allocations
- is not too small.
- movable_node [KNL,EARLY] Boot-time switch to make hotplugable memory
- NUMA nodes to be movable. This means that the memory
- of such nodes will be usable only for movable
- allocations which rules out almost all kernel
- allocations. Use with caution!
- MTD_Partition= [MTD]
- Format: <name>,<region-number>,<size>,<offset>
- MTD_Region= [MTD] Format:
- <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]
- mtdparts= [MTD]
- See drivers/mtd/parsers/cmdlinepart.c
- mtouchusb.raw_coordinates=
- [HW] Make the MicroTouch USB driver use raw coordinates
- ('y', default) or cooked coordinates ('n')
- mtrr=debug [X86,EARLY]
- Enable printing debug information related to MTRR
- registers at boot time.
- mtrr_chunk_size=nn[KMG,X86,EARLY]
- used for mtrr cleanup. It is largest continuous chunk
- that could hold holes aka. UC entries.
- mtrr_gran_size=nn[KMG,X86,EARLY]
- Used for mtrr cleanup. It is granularity of mtrr block.
- Default is 1.
- Large value could prevent small alignment from
- using up MTRRs.
- mtrr_spare_reg_nr=n [X86,EARLY]
- Format: <integer>
- Range: 0,7 : spare reg number
- Default : 1
- Used for mtrr cleanup. It is spare mtrr entries number.
- Set to 2 or more if your graphical card needs more.
- multitce=off [PPC] This parameter disables the use of the pSeries
- firmware feature for updating multiple TCE entries
- at a time.
- n2= [NET] SDL Inc. RISCom/N2 synchronous serial card
- netdev= [NET] Network devices parameters
- Format: <irq>,<io>,<mem_start>,<mem_end>,<name>
- Note that mem_start is often overloaded to mean
- something different and driver-specific.
- This usage is only documented in each driver source
- file if at all.
- netpoll.carrier_timeout=
- [NET] Specifies amount of time (in seconds) that
- netpoll should wait for a carrier. By default netpoll
- waits 4 seconds.
- nf_conntrack.acct=
- [NETFILTER] Enable connection tracking flow accounting
- 0 to disable accounting
- 1 to enable accounting
- Default value is 0.
- nfs.cache_getent=
- [NFS] sets the pathname to the program which is used
- to update the NFS client cache entries.
- nfs.cache_getent_timeout=
- [NFS] sets the timeout after which an attempt to
- update a cache entry is deemed to have failed.
- nfs.callback_nr_threads=
- [NFSv4] set the total number of threads that the
- NFS client will assign to service NFSv4 callback
- requests.
- nfs.callback_tcpport=
- [NFS] set the TCP port on which the NFSv4 callback
- channel should listen.
- nfs.delay_retrans=
- [NFS] specifies the number of times the NFSv4 client
- retries the request before returning an EAGAIN error,
- after a reply of NFS4ERR_DELAY from the server.
- Only applies if the softerr mount option is enabled,
- and the specified value is >= 0.
- nfs.enable_ino64=
- [NFS] enable 64-bit inode numbers.
- If zero, the NFS client will fake up a 32-bit inode
- number for the readdir() and stat() syscalls instead
- of returning the full 64-bit number.
- The default is to return 64-bit inode numbers.
- nfs.idmap_cache_timeout=
- [NFS] set the maximum lifetime for idmapper cache
- entries.
- nfs.max_session_cb_slots=
- [NFSv4.1] Sets the maximum number of session
- slots the client will assign to the callback
- channel. This determines the maximum number of
- callbacks the client will process in parallel for
- a particular server.
- nfs.max_session_slots=
- [NFSv4.1] Sets the maximum number of session slots
- the client will attempt to negotiate with the server.
- This limits the number of simultaneous RPC requests
- that the client can send to the NFSv4.1 server.
- Note that there is little point in setting this
- value higher than the max_tcp_slot_table_limit.
- nfs.nfs4_disable_idmapping=
- [NFSv4] When set to the default of '1', this option
- ensures that both the RPC level authentication
- scheme and the NFS level operations agree to use
- numeric uids/gids if the mount is using the
- 'sec=sys' security flavour. In effect it is
- disabling idmapping, which can make migration from
- legacy NFSv2/v3 systems to NFSv4 easier.
- Servers that do not support this mode of operation
- will be autodetected by the client, and it will fall
- back to using the idmapper.
- To turn off this behaviour, set the value to '0'.
- nfs.nfs4_unique_id=
- [NFS4] Specify an additional fixed unique ident-
- ification string that NFSv4 clients can insert into
- their nfs_client_id4 string. This is typically a
- UUID that is generated at system install time.
- nfs.recover_lost_locks=
- [NFSv4] Attempt to recover locks that were lost due
- to a lease timeout on the server. Please note that
- doing this risks data corruption, since there are
- no guarantees that the file will remain unchanged
- after the locks are lost.
- If you want to enable the kernel legacy behaviour of
- attempting to recover these locks, then set this
- parameter to '1'.
- The default parameter value of '0' causes the kernel
- not to attempt recovery of lost locks.
- nfs.send_implementation_id=
- [NFSv4.1] Send client implementation identification
- information in exchange_id requests.
- If zero, no implementation identification information
- will be sent.
- The default is to send the implementation identification
- information.
- nfs4.layoutstats_timer=
- [NFSv4.2] Change the rate at which the kernel sends
- layoutstats to the pNFS metadata server.
- Setting this to value to 0 causes the kernel to use
- whatever value is the default set by the layout
- driver. A non-zero value sets the minimum interval
- in seconds between layoutstats transmissions.
- nfsd.inter_copy_offload_enable=
- [NFSv4.2] When set to 1, the server will support
- server-to-server copies for which this server is
- the destination of the copy.
- nfsd.nfs4_disable_idmapping=
- [NFSv4] When set to the default of '1', the NFSv4
- server will return only numeric uids and gids to
- clients using auth_sys, and will accept numeric uids
- and gids from such clients. This is intended to ease
- migration from NFSv2/v3.
- nfsd.nfsd4_ssc_umount_timeout=
- [NFSv4.2] When used as the destination of a
- server-to-server copy, knfsd temporarily mounts
- the source server. It caches the mount in case
- it will be needed again, and discards it if not
- used for the number of milliseconds specified by
- this parameter.
- nfsaddrs= [NFS] Deprecated. Use ip= instead.
- See Documentation/admin-guide/nfs/nfsroot.rst.
- nfsroot= [NFS] nfs root filesystem for disk-less boxes.
- See Documentation/admin-guide/nfs/nfsroot.rst.
- nfsrootdebug [NFS] enable nfsroot debugging messages.
- See Documentation/admin-guide/nfs/nfsroot.rst.
- nmi_backtrace.backtrace_idle [KNL]
- Dump stacks even of idle CPUs in response to an
- NMI stack-backtrace request.
- nmi_debug= [KNL,SH] Specify one or more actions to take
- when a NMI is triggered.
- Format: [state][,regs][,debounce][,die]
- nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
- Format: [panic,][nopanic,][rNNN,][num]
- Valid num: 0 or 1
- 0 - turn hardlockup detector in nmi_watchdog off
- 1 - turn hardlockup detector in nmi_watchdog on
- rNNN - configure the watchdog with raw perf event 0xNNN
- When panic is specified, panic when an NMI watchdog
- timeout occurs (or 'nopanic' to not panic on an NMI
- watchdog, if CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is set)
- To disable both hard and soft lockup detectors,
- please see 'nowatchdog'.
- This is useful when you use a panic=... timeout and
- need the box quickly up again.
- These settings can be accessed at runtime via
- the nmi_watchdog and hardlockup_panic sysctls.
- no387 [BUGS=X86-32] Tells the kernel to use the 387 maths
- emulation library even if a 387 maths coprocessor
- is present.
- no4lvl [RISCV,EARLY] Disable 4-level and 5-level paging modes.
- Forces kernel to use 3-level paging instead.
- no5lvl [X86-64,RISCV,EARLY] Disable 5-level paging mode. Forces
- kernel to use 4-level paging instead.
- noalign [KNL,ARM]
- noapic [SMP,APIC,EARLY] Tells the kernel to not make use of any
- IOAPICs that may be present in the system.
- noautogroup Disable scheduler automatic task group creation.
- nocache [ARM,EARLY]
- no_console_suspend
- [HW] Never suspend the console
- Disable suspending of consoles during suspend and
- hibernate operations. Once disabled, debugging
- messages can reach various consoles while the rest
- of the system is being put to sleep (ie, while
- debugging driver suspend/resume hooks). This may
- not work reliably with all consoles, but is known
- to work with serial and VGA consoles.
- To facilitate more flexible debugging, we also add
- console_suspend, a printk module parameter to control
- it. Users could use console_suspend (usually
- /sys/module/printk/parameters/console_suspend) to
- turn on/off it dynamically.
- no_debug_objects
- [KNL,EARLY] Disable object debugging
- nodsp [SH] Disable hardware DSP at boot time.
- noefi [EFI,EARLY] Disable EFI runtime services support.
- no_entry_flush [PPC,EARLY] Don't flush the L1-D cache when entering the kernel.
- noexec32 [X86-64]
- This affects only 32-bit executables.
- noexec32=on: enable non-executable mappings (default)
- read doesn't imply executable mappings
- noexec32=off: disable non-executable mappings
- read implies executable mappings
- no_file_caps Tells the kernel not to honor file capabilities. The
- only way then for a file to be executed with privilege
- is to be setuid root or executed by root.
- nofpu [MIPS,SH] Disable hardware FPU at boot time.
- nofsgsbase [X86] Disables FSGSBASE instructions.
- nofxsr [BUGS=X86-32] Disables x86 floating point extended
- register save and restore. The kernel will only save
- legacy floating-point registers on task switch.
- no_hash_pointers
- [KNL,EARLY]
- Force pointers printed to the console or buffers to be
- unhashed. By default, when a pointer is printed via %p
- format string, that pointer is "hashed", i.e. obscured
- by hashing the pointer value. This is a security feature
- that hides actual kernel addresses from unprivileged
- users, but it also makes debugging the kernel more
- difficult since unequal pointers can no longer be
- compared. However, if this command-line option is
- specified, then all normal pointers will have their true
- value printed. This option should only be specified when
- debugging the kernel. Please do not use on production
- kernels.
- nohibernate [HIBERNATION] Disable hibernation and resume.
- nohlt [ARM,ARM64,MICROBLAZE,MIPS,PPC,RISCV,SH] Forces the kernel to
- busy wait in do_idle() and not use the arch_cpu_idle()
- implementation; requires CONFIG_GENERIC_IDLE_POLL_SETUP
- to be effective. This is useful on platforms where the
- sleep(SH) or wfi(ARM,ARM64) instructions do not work
- correctly or when doing power measurements to evaluate
- the impact of the sleep instructions. This is also
- useful when using JTAG debugger.
- nohugeiomap [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge I/O mappings.
- nohugevmalloc [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge vmalloc mappings.
- nohz= [KNL] Boottime enable/disable dynamic ticks
- Valid arguments: on, off
- Default: on
- nohz_full= [KNL,BOOT,SMP,ISOL]
- The argument is a cpu list, as described above.
- In kernels built with CONFIG_NO_HZ_FULL=y, set
- the specified list of CPUs whose tick will be stopped
- whenever possible. The boot CPU will be forced outside
- the range to maintain the timekeeping. Any CPUs
- in this list will have their RCU callbacks offloaded,
- just as if they had also been called out in the
- rcu_nocbs= boot parameter.
- Note that this argument takes precedence over
- the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option.
- noinitrd [RAM] Tells the kernel not to load any configured
- initial RAM disk.
- nointremap [X86-64,Intel-IOMMU,EARLY] Do not enable interrupt
- remapping.
- [Deprecated - use intremap=off]
- noinvpcid [X86,EARLY] Disable the INVPCID cpu feature.
- noiotrap [SH] Disables trapped I/O port accesses.
- noirqdebug [X86-32] Disables the code which attempts to detect and
- disable unhandled interrupt sources.
- noisapnp [ISAPNP] Disables ISA PnP code.
- nokaslr [KNL,EARLY]
- When CONFIG_RANDOMIZE_BASE is set, this disables
- kernel and module base offset ASLR (Address Space
- Layout Randomization).
- no-kvmapf [X86,KVM,EARLY] Disable paravirtualized asynchronous page
- fault handling.
- no-kvmclock [X86,KVM,EARLY] Disable paravirtualized KVM clock driver
- nolapic [X86-32,APIC,EARLY] Do not enable or use the local APIC.
- nolapic_timer [X86-32,APIC,EARLY] Do not use the local APIC timer.
- nomce [X86-32] Disable Machine Check Exception
- nomfgpt [X86-32] Disable Multi-Function General Purpose
- Timer usage (for AMD Geode machines).
- nomodeset Disable kernel modesetting. Most systems' firmware
- sets up a display mode and provides framebuffer memory
- for output. With nomodeset, DRM and fbdev drivers will
- not load if they could possibly displace the pre-
- initialized output. Only the system framebuffer will
- be available for use. The respective drivers will not
- perform display-mode changes or accelerated rendering.
- Useful as error fallback, or for testing and debugging.
- nomodule Disable module load
- nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to
- shutdown the other cpus. Instead use the REBOOT_VECTOR
- irq.
- nopat [X86,EARLY] Disable PAT (page attribute table extension of
- pagetables) support.
- nopcid [X86-64,EARLY] Disable the PCID cpu feature.
- nopku [X86] Disable Memory Protection Keys CPU feature found
- in some Intel CPUs.
- nopti [X86-64,EARLY]
- Equivalent to pti=off
- nopv= [X86,XEN,KVM,HYPER_V,VMWARE,EARLY]
- Disables the PV optimizations forcing the guest to run
- as generic guest with no PV drivers. Currently support
- XEN HVM, KVM, HYPER_V and VMWARE guest.
- nopvspin [X86,XEN,KVM,EARLY]
- Disables the qspinlock slow path using PV optimizations
- which allow the hypervisor to 'idle' the guest on lock
- contention.
- norandmaps Don't use address space randomization. Equivalent to
- echo 0 > /proc/sys/kernel/randomize_va_space
- noreplace-smp [X86-32,SMP] Don't replace SMP instructions
- with UP alternatives
- noresume [SWSUSP] Disables resume and restores original swap
- space.
- no-scroll [VGA] Disables scrollback.
- This is required for the Braillex ib80-piezo Braille
- reader made by F.H. Papenmeier (Germany).
- nosgx [X86-64,SGX,EARLY] Disables Intel SGX kernel support.
- nosmap [PPC,EARLY]
- Disable SMAP (Supervisor Mode Access Prevention)
- even if it is supported by processor.
- nosmep [PPC64s,EARLY]
- Disable SMEP (Supervisor Mode Execution Prevention)
- even if it is supported by processor.
- nosmp [SMP,EARLY] Tells an SMP kernel to act as a UP kernel,
- and disable the IO APIC. legacy for "maxcpus=0".
- nosmt [KNL,MIPS,PPC,S390,EARLY] Disable symmetric multithreading (SMT).
- Equivalent to smt=1.
- [KNL,X86,PPC] Disable symmetric multithreading (SMT).
- nosmt=force: Force disable SMT, cannot be undone
- via the sysfs control file.
- nosoftlockup [KNL] Disable the soft-lockup detector.
- nospec_store_bypass_disable
- [HW,EARLY] Disable all mitigations for the Speculative
- Store Bypass vulnerability
- nospectre_bhb [ARM64,EARLY] Disable all mitigations for Spectre-BHB (branch
- history injection) vulnerability. System may allow data leaks
- with this option.
- nospectre_v1 [X86,PPC,EARLY] Disable mitigations for Spectre Variant 1
- (bounds check bypass). With this option data leaks are
- possible in the system.
- nospectre_v2 [X86,PPC_E500,ARM64,EARLY] Disable all mitigations
- for the Spectre variant 2 (indirect branch
- prediction) vulnerability. System may allow data
- leaks with this option.
- no-steal-acc [X86,PV_OPS,ARM64,PPC/PSERIES,RISCV,LOONGARCH,EARLY]
- Disable paravirtualized steal time accounting. steal time
- is computed, but won't influence scheduler behaviour
- nosync [HW,M68K] Disables sync negotiation for all devices.
- no_timer_check [X86,APIC] Disables the code which tests for
- broken timer IRQ sources.
- no_uaccess_flush
- [PPC,EARLY] Don't flush the L1-D cache after accessing user data.
- novmcoredd [KNL,KDUMP]
- Disable device dump. Device dump allows drivers to
- append dump data to vmcore so you can collect driver
- specified debug info. Drivers can append the data
- without any limit and this data is stored in memory,
- so this may cause significant memory stress. Disabling
- device dump can help save memory but the driver debug
- data will be no longer available. This parameter
- is only available when CONFIG_PROC_VMCORE_DEVICE_DUMP
- is set.
- no-vmw-sched-clock
- [X86,PV_OPS,EARLY] Disable paravirtualized VMware
- scheduler clock and use the default one.
- nowatchdog [KNL] Disable both lockup detectors, i.e.
- soft-lockup and NMI watchdog (hard-lockup).
- nowb [ARM,EARLY]
- nox2apic [X86-64,APIC,EARLY] Do not enable x2APIC mode.
- NOTE: this parameter will be ignored on systems with the
- LEGACY_XAPIC_DISABLED bit set in the
- IA32_XAPIC_DISABLE_STATUS MSR.
- noxsave [BUGS=X86] Disables x86 extended register state save
- and restore using xsave. The kernel will fallback to
- enabling legacy floating-point and sse state.
- noxsaveopt [X86] Disables xsaveopt used in saving x86 extended
- register states. The kernel will fall back to use
- xsave to save the states. By using this parameter,
- performance of saving the states is degraded because
- xsave doesn't support modified optimization while
- xsaveopt supports it on xsaveopt enabled systems.
- noxsaves [X86] Disables xsaves and xrstors used in saving and
- restoring x86 extended register state in compacted
- form of xsave area. The kernel will fall back to use
- xsaveopt and xrstor to save and restore the states
- in standard form of xsave area. By using this
- parameter, xsave area per process might occupy more
- memory on xsaves enabled systems.
- nr_cpus= [SMP,EARLY] Maximum number of processors that an SMP kernel
- could support. nr_cpus=n : n >= 1 limits the kernel to
- support 'n' processors. It could be larger than the
- number of already plugged CPU during bootup, later in
- runtime you can physically add extra cpu until it reaches
- n. So during boot up some boot time memory for per-cpu
- variables need be pre-allocated for later physical cpu
- hot plugging.
- nr_uarts= [SERIAL] maximum number of UARTs to be registered.
- numa=off [KNL, ARM64, PPC, RISCV, SPARC, X86, EARLY]
- Disable NUMA, Only set up a single NUMA node
- spanning all memory.
- numa=fake=<size>[MG]
- [KNL, ARM64, RISCV, X86, EARLY]
- If given as a memory unit, fills all system RAM with
- nodes of size interleaved over physical nodes.
- numa=fake=<N>
- [KNL, ARM64, RISCV, X86, EARLY]
- If given as an integer, fills all system RAM with N
- fake nodes interleaved over physical nodes.
- numa=fake=<N>U
- [KNL, ARM64, RISCV, X86, EARLY]
- If given as an integer followed by 'U', it will
- divide each physical node into N emulated nodes.
- numa_balancing= [KNL,ARM64,PPC,RISCV,S390,X86] Enable or disable automatic
- NUMA balancing.
- Allowed values are enable and disable
- numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.
- 'node', 'default' can be specified
- This can be set from sysctl after boot.
- See Documentation/admin-guide/sysctl/vm.rst for details.
- ohci1394_dma=early [HW,EARLY] enable debugging via the ohci1394 driver.
- See Documentation/core-api/debugging-via-ohci1394.rst for more
- info.
- olpc_ec_timeout= [OLPC] ms delay when issuing EC commands
- Rather than timing out after 20 ms if an EC
- command is not properly ACKed, override the length
- of the timeout. We have interrupts disabled while
- waiting for the ACK, so if this is set too high
- interrupts *may* be lost!
- omap_mux= [OMAP] Override bootloader pin multiplexing.
- Format: <mux_mode0.mode_name=value>...
- For example, to override I2C bus2:
- omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100
- onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration
- Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock]
- boundary - index of last SLC block on Flex-OneNAND.
- The remaining blocks are configured as MLC blocks.
- lock - Configure if Flex-OneNAND boundary should be locked.
- Once locked, the boundary cannot be changed.
- 1 indicates lock status, 0 indicates unlock status.
- oops=panic [KNL,EARLY]
- Always panic on oopses. Default is to just kill the
- process, but there is a small probability of
- deadlocking the machine.
- This will also cause panics on machine check exceptions.
- Useful together with panic=30 to trigger a reboot.
- page_alloc.shuffle=
- [KNL] Boolean flag to control whether the page allocator
- should randomize its free lists. This parameter can be
- used to enable/disable page randomization. The state of
- the flag can be read from sysfs at:
- /sys/module/page_alloc/parameters/shuffle.
- This parameter is only available if CONFIG_SHUFFLE_PAGE_ALLOCATOR=y.
- page_owner= [KNL,EARLY] Boot-time page_owner enabling option.
- Storage of the information about who allocated
- each page is disabled in default. With this switch,
- we can turn it on.
- on: enable the feature
- page_poison= [KNL,EARLY] Boot-time parameter changing the state of
- poisoning on the buddy allocator, available with
- CONFIG_PAGE_POISONING=y.
- off: turn off poisoning (default)
- on: turn on poisoning
- page_reporting.page_reporting_order=
- [KNL] Minimal page reporting order
- Format: <integer>
- Adjust the minimal page reporting order. The page
- reporting is disabled when it exceeds MAX_PAGE_ORDER.
- panic= [KNL] Kernel behaviour on panic: delay <timeout>
- timeout > 0: seconds before rebooting
- timeout = 0: wait forever
- timeout < 0: reboot immediately
- Format: <timeout>
- panic_on_taint= [KNL,EARLY]
- Bitmask for conditionally calling panic() in add_taint()
- Format: <hex>[,nousertaint]
- Hexadecimal bitmask representing the set of TAINT flags
- that will cause the kernel to panic when add_taint() is
- called with any of the flags in this set.
- The optional switch "nousertaint" can be utilized to
- prevent userspace forced crashes by writing to sysctl
- /proc/sys/kernel/tainted any flagset matching with the
- bitmask set on panic_on_taint.
- See Documentation/admin-guide/tainted-kernels.rst for
- extra details on the taint flags that users can pick
- to compose the bitmask to assign to panic_on_taint.
- panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump
- on a WARN().
- panic_print= Bitmask for printing system info when panic happens.
- User can chose combination of the following bits:
- bit 0: print all tasks info
- bit 1: print system memory info
- bit 2: print timer info
- bit 3: print locks info if CONFIG_LOCKDEP is on
- bit 4: print ftrace buffer
- bit 5: print all printk messages in buffer
- bit 6: print all CPUs backtrace (if available in the arch)
- bit 7: print only tasks in uninterruptible (blocked) state
- *Be aware* that this option may print a _lot_ of lines,
- so there are risks of losing older messages in the log.
- Use this option carefully, maybe worth to setup a
- bigger log buffer with "log_buf_len" along with this.
- parkbd.port= [HW] Parallel port number the keyboard adapter is
- connected to, default is 0.
- Format: <parport#>
- parkbd.mode= [HW] Parallel port keyboard adapter mode of operation,
- 0 for XT, 1 for AT (default is AT).
- Format: <mode>
- parport= [HW,PPT] Specify parallel ports. 0 disables.
- Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] }
- Use 'auto' to force the driver to use any
- IRQ/DMA settings detected (the default is to
- ignore detected IRQ/DMA settings because of
- possible conflicts). You can specify the base
- address, IRQ, and DMA settings; IRQ and DMA
- should be numbers, or 'auto' (for using detected
- settings on that particular port), or 'nofifo'
- (to avoid using a FIFO even if it is detected).
- Parallel ports are assigned in the order they
- are specified on the command line, starting
- with parport0.
- parport_init_mode= [HW,PPT]
- Configure VIA parallel port to operate in
- a specific mode. This is necessary on Pegasos
- computer where firmware has no options for setting
- up parallel port mode and sets it to spp.
- Currently this function knows 686a and 8231 chips.
- Format: [spp|ps2|epp|ecp|ecpepp]
- pata_legacy.all= [HW,LIBATA]
- Format: <int>
- Set to non-zero to probe primary and secondary ISA
- port ranges on PCI systems where no PCI PATA device
- has been found at either range. Disabled by default.
- pata_legacy.autospeed= [HW,LIBATA]
- Format: <int>
- Set to non-zero if a chip is present that snoops speed
- changes. Disabled by default.
- pata_legacy.ht6560a= [HW,LIBATA]
- Format: <int>
- Set to 1, 2, or 3 for HT 6560A on the primary channel,
- the secondary channel, or both channels respectively.
- Disabled by default.
- pata_legacy.ht6560b= [HW,LIBATA]
- Format: <int>
- Set to 1, 2, or 3 for HT 6560B on the primary channel,
- the secondary channel, or both channels respectively.
- Disabled by default.
- pata_legacy.iordy_mask= [HW,LIBATA]
- Format: <int>
- IORDY enable mask. Set individual bits to allow IORDY
- for the respective channel. Bit 0 is for the first
- legacy channel handled by this driver, bit 1 is for
- the second channel, and so on. The sequence will often
- correspond to the primary legacy channel, the secondary
- legacy channel, and so on, but the handling of a PCI
- bus and the use of other driver options may interfere
- with the sequence. By default IORDY is allowed across
- all channels.
- pata_legacy.opti82c46x= [HW,LIBATA]
- Format: <int>
- Set to 1, 2, or 3 for Opti 82c611A on the primary
- channel, the secondary channel, or both channels
- respectively. Disabled by default.
- pata_legacy.opti82c611a= [HW,LIBATA]
- Format: <int>
- Set to 1, 2, or 3 for Opti 82c465MV on the primary
- channel, the secondary channel, or both channels
- respectively. Disabled by default.
- pata_legacy.pio_mask= [HW,LIBATA]
- Format: <int>
- PIO mode mask for autospeed devices. Set individual
- bits to allow the use of the respective PIO modes.
- Bit 0 is for mode 0, bit 1 is for mode 1, and so on.
- All modes allowed by default.
- pata_legacy.probe_all= [HW,LIBATA]
- Format: <int>
- Set to non-zero to probe tertiary and further ISA
- port ranges on PCI systems. Disabled by default.
- pata_legacy.probe_mask= [HW,LIBATA]
- Format: <int>
- Probe mask for legacy ISA PATA ports. Depending on
- platform configuration and the use of other driver
- options up to 6 legacy ports are supported: 0x1f0,
- 0x170, 0x1e8, 0x168, 0x1e0, 0x160, however probing
- of individual ports can be disabled by setting the
- corresponding bits in the mask to 1. Bit 0 is for
- the first port in the list above (0x1f0), and so on.
- By default all supported ports are probed.
- pata_legacy.qdi= [HW,LIBATA]
- Format: <int>
- Set to non-zero to probe QDI controllers. By default
- set to 1 if CONFIG_PATA_QDI_MODULE, 0 otherwise.
- pata_legacy.winbond= [HW,LIBATA]
- Format: <int>
- Set to non-zero to probe Winbond controllers. Use
- the standard I/O port (0x130) if 1, otherwise the
- value given is the I/O port to use (typically 0x1b0).
- By default set to 1 if CONFIG_PATA_WINBOND_VLB_MODULE,
- 0 otherwise.
- pata_platform.pio_mask= [HW,LIBATA]
- Format: <int>
- Supported PIO mode mask. Set individual bits to allow
- the use of the respective PIO modes. Bit 0 is for
- mode 0, bit 1 is for mode 1, and so on. Mode 0 only
- allowed by default.
- pause_on_oops=<int>
- Halt all CPUs after the first oops has been printed for
- the specified number of seconds. This is to be used if
- your oopses keep scrolling off the screen.
- pcbit= [HW,ISDN]
- pci=option[,option...] [PCI,EARLY] various PCI subsystem options.
- Some options herein operate on a specific device
- or a set of devices (<pci_dev>). These are
- specified in one of the following formats:
- [<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]*
- pci:<vendor>:<device>[:<subvendor>:<subdevice>]
- Note: the first format specifies a PCI
- bus/device/function address which may change
- if new hardware is inserted, if motherboard
- firmware changes, or due to changes caused
- by other kernel parameters. If the
- domain is left unspecified, it is
- taken to be zero. Optionally, a path
- to a device through multiple device/function
- addresses can be specified after the base
- address (this is more robust against
- renumbering issues). The second format
- selects devices using IDs from the
- configuration space which may match multiple
- devices in the system.
- earlydump dump PCI config space before the kernel
- changes anything
- off [X86] don't probe for the PCI bus
- bios [X86-32] force use of PCI BIOS, don't access
- the hardware directly. Use this if your machine
- has a non-standard PCI host bridge.
- nobios [X86-32] disallow use of PCI BIOS, only direct
- hardware access methods are allowed. Use this
- if you experience crashes upon bootup and you
- suspect they are caused by the BIOS.
- conf1 [X86] Force use of PCI Configuration Access
- Mechanism 1 (config address in IO port 0xCF8,
- data in IO port 0xCFC, both 32-bit).
- conf2 [X86] Force use of PCI Configuration Access
- Mechanism 2 (IO port 0xCF8 is an 8-bit port for
- the function, IO port 0xCFA, also 8-bit, sets
- bus number. The config space is then accessed
- through ports 0xC000-0xCFFF).
- See http://wiki.osdev.org/PCI for more info
- on the configuration access mechanisms.
- noaer [PCIE] If the PCIEAER kernel config parameter is
- enabled, this kernel boot option can be used to
- disable the use of PCIE advanced error reporting.
- nodomains [PCI] Disable support for multiple PCI
- root domains (aka PCI segments, in ACPI-speak).
- nommconf [X86] Disable use of MMCONFIG for PCI
- Configuration
- check_enable_amd_mmconf [X86] check for and enable
- properly configured MMIO access to PCI
- config space on AMD family 10h CPU
- nomsi [MSI] If the PCI_MSI kernel config parameter is
- enabled, this kernel boot option can be used to
- disable the use of MSI interrupts system-wide.
- noioapicquirk [APIC] Disable all boot interrupt quirks.
- Safety option to keep boot IRQs enabled. This
- should never be necessary.
- ioapicreroute [APIC] Enable rerouting of boot IRQs to the
- primary IO-APIC for bridges that cannot disable
- boot IRQs. This fixes a source of spurious IRQs
- when the system masks IRQs.
- noioapicreroute [APIC] Disable workaround that uses the
- boot IRQ equivalent of an IRQ that connects to
- a chipset where boot IRQs cannot be disabled.
- The opposite of ioapicreroute.
- biosirq [X86-32] Use PCI BIOS calls to get the interrupt
- routing table. These calls are known to be buggy
- on several machines and they hang the machine
- when used, but on other computers it's the only
- way to get the interrupt routing table. Try
- this option if the kernel is unable to allocate
- IRQs or discover secondary PCI buses on your
- motherboard.
- rom [X86] Assign address space to expansion ROMs.
- Use with caution as certain devices share
- address decoders between ROMs and other
- resources.
- norom [X86] Do not assign address space to
- expansion ROMs that do not already have
- BIOS assigned address ranges.
- nobar [X86] Do not assign address space to the
- BARs that weren't assigned by the BIOS.
- irqmask=0xMMMM [X86] Set a bit mask of IRQs allowed to be
- assigned automatically to PCI devices. You can
- make the kernel exclude IRQs of your ISA cards
- this way.
- pirqaddr=0xAAAAA [X86] Specify the physical address
- of the PIRQ table (normally generated
- by the BIOS) if it is outside the
- F0000h-100000h range.
- lastbus=N [X86] Scan all buses thru bus #N. Can be
- useful if the kernel is unable to find your
- secondary buses and you want to tell it
- explicitly which ones they are.
- assign-busses [X86] Always assign all PCI bus
- numbers ourselves, overriding
- whatever the firmware may have done.
- usepirqmask [X86] Honor the possible IRQ mask stored
- in the BIOS $PIR table. This is needed on
- some systems with broken BIOSes, notably
- some HP Pavilion N5400 and Omnibook XE3
- notebooks. This will have no effect if ACPI
- IRQ routing is enabled.
- noacpi [X86] Do not use ACPI for IRQ routing
- or for PCI scanning.
- use_crs [X86] Use PCI host bridge window information
- from ACPI. On BIOSes from 2008 or later, this
- is enabled by default. If you need to use this,
- please report a bug.
- nocrs [X86] Ignore PCI host bridge windows from ACPI.
- If you need to use this, please report a bug.
- use_e820 [X86] Use E820 reservations to exclude parts of
- PCI host bridge windows. This is a workaround
- for BIOS defects in host bridge _CRS methods.
- If you need to use this, please report a bug to
- <linux-pci@vger.kernel.org>.
- no_e820 [X86] Ignore E820 reservations for PCI host
- bridge windows. This is the default on modern
- hardware. If you need to use this, please report
- a bug to <linux-pci@vger.kernel.org>.
- routeirq Do IRQ routing for all PCI devices.
- This is normally done in pci_enable_device(),
- so this option is a temporary workaround
- for broken drivers that don't call it.
- skip_isa_align [X86] do not align io start addr, so can
- handle more pci cards
- noearly [X86] Don't do any early type 1 scanning.
- This might help on some broken boards which
- machine check when some devices' config space
- is read. But various workarounds are disabled
- and some IOMMU drivers will not work.
- bfsort Sort PCI devices into breadth-first order.
- This sorting is done to get a device
- order compatible with older (<= 2.4) kernels.
- nobfsort Don't sort PCI devices into breadth-first order.
- pcie_bus_tune_off Disable PCIe MPS (Max Payload Size)
- tuning and use the BIOS-configured MPS defaults.
- pcie_bus_safe Set every device's MPS to the largest value
- supported by all devices below the root complex.
- pcie_bus_perf Set device MPS to the largest allowable MPS
- based on its parent bus. Also set MRRS (Max
- Read Request Size) to the largest supported
- value (no larger than the MPS that the device
- or bus can support) for best performance.
- pcie_bus_peer2peer Set every device's MPS to 128B, which
- every device is guaranteed to support. This
- configuration allows peer-to-peer DMA between
- any pair of devices, possibly at the cost of
- reduced performance. This also guarantees
- that hot-added devices will work.
- cbiosize=nn[KMG] The fixed amount of bus space which is
- reserved for the CardBus bridge's IO window.
- The default value is 256 bytes.
- cbmemsize=nn[KMG] The fixed amount of bus space which is
- reserved for the CardBus bridge's memory
- window. The default value is 64 megabytes.
- resource_alignment=
- Format:
- [<order of align>@]<pci_dev>[; ...]
- Specifies alignment and device to reassign
- aligned memory resources. How to
- specify the device is described above.
- If <order of align> is not specified,
- PAGE_SIZE is used as alignment.
- A PCI-PCI bridge can be specified if resource
- windows need to be expanded.
- To specify the alignment for several
- instances of a device, the PCI vendor,
- device, subvendor, and subdevice may be
- specified, e.g., 12@pci:8086:9c22:103c:198f
- for 4096-byte alignment.
- ecrc= Enable/disable PCIe ECRC (transaction layer
- end-to-end CRC checking). Only effective if
- OS has native AER control (either granted by
- ACPI _OSC or forced via "pcie_ports=native")
- bios: Use BIOS/firmware settings. This is the
- the default.
- off: Turn ECRC off
- on: Turn ECRC on.
- hpiosize=nn[KMG] The fixed amount of bus space which is
- reserved for hotplug bridge's IO window.
- Default size is 256 bytes.
- hpmmiosize=nn[KMG] The fixed amount of bus space which is
- reserved for hotplug bridge's MMIO window.
- Default size is 2 megabytes.
- hpmmioprefsize=nn[KMG] The fixed amount of bus space which is
- reserved for hotplug bridge's MMIO_PREF window.
- Default size is 2 megabytes.
- hpmemsize=nn[KMG] The fixed amount of bus space which is
- reserved for hotplug bridge's MMIO and
- MMIO_PREF window.
- Default size is 2 megabytes.
- hpbussize=nn The minimum amount of additional bus numbers
- reserved for buses below a hotplug bridge.
- Default is 1.
- realloc= Enable/disable reallocating PCI bridge resources
- if allocations done by BIOS are too small to
- accommodate resources required by all child
- devices.
- off: Turn realloc off
- on: Turn realloc on
- realloc same as realloc=on
- noari do not use PCIe ARI.
- noats [PCIE, Intel-IOMMU, AMD-IOMMU]
- do not use PCIe ATS (and IOMMU device IOTLB).
- pcie_scan_all Scan all possible PCIe devices. Otherwise we
- only look for one device below a PCIe downstream
- port.
- big_root_window Try to add a big 64bit memory window to the PCIe
- root complex on AMD CPUs. Some GFX hardware
- can resize a BAR to allow access to all VRAM.
- Adding the window is slightly risky (it may
- conflict with unreported devices), so this
- taints the kernel.
- disable_acs_redir=<pci_dev>[; ...]
- Specify one or more PCI devices (in the format
- specified above) separated by semicolons.
- Each device specified will have the PCI ACS
- redirect capabilities forced off which will
- allow P2P traffic between devices through
- bridges without forcing it upstream. Note:
- this removes isolation between devices and
- may put more devices in an IOMMU group.
- config_acs=
- Format:
- <ACS flags>@<pci_dev>[; ...]
- Specify one or more PCI devices (in the format
- specified above) optionally prepended with flags
- and separated by semicolons. The respective
- capabilities will be enabled, disabled or
- unchanged based on what is specified in
- flags.
- ACS Flags is defined as follows:
- bit-0 : ACS Source Validation
- bit-1 : ACS Translation Blocking
- bit-2 : ACS P2P Request Redirect
- bit-3 : ACS P2P Completion Redirect
- bit-4 : ACS Upstream Forwarding
- bit-5 : ACS P2P Egress Control
- bit-6 : ACS Direct Translated P2P
- Each bit can be marked as:
- '0' – force disabled
- '1' – force enabled
- 'x' – unchanged
- For example,
- pci=config_acs=10x
- would configure all devices that support
- ACS to enable P2P Request Redirect, disable
- Translation Blocking, and leave Source
- Validation unchanged from whatever power-up
- or firmware set it to.
- Note: this may remove isolation between devices
- and may put more devices in an IOMMU group.
- force_floating [S390] Force usage of floating interrupts.
- nomio [S390] Do not use MIO instructions.
- norid [S390] ignore the RID field and force use of
- one PCI domain per PCI function
- pcie_aspm= [PCIE] Forcibly enable or ignore PCIe Active State Power
- Management.
- off Don't touch ASPM configuration at all. Leave any
- configuration done by firmware unchanged.
- force Enable ASPM even on devices that claim not to support it.
- WARNING: Forcing ASPM on may cause system lockups.
- pcie_ports= [PCIE] PCIe port services handling:
- native Use native PCIe services (PME, AER, DPC, PCIe hotplug)
- even if the platform doesn't give the OS permission to
- use them. This may cause conflicts if the platform
- also tries to use these services.
- dpc-native Use native PCIe service for DPC only. May
- cause conflicts if firmware uses AER or DPC.
- compat Disable native PCIe services (PME, AER, DPC, PCIe
- hotplug).
- pcie_port_pm= [PCIE] PCIe port power management handling:
- off Disable power management of all PCIe ports
- force Forcibly enable power management of all PCIe ports
- pcie_pme= [PCIE,PM] Native PCIe PME signaling options:
- nomsi Do not use MSI for native PCIe PME signaling (this makes
- all PCIe root ports use INTx for all services).
- pcmv= [HW,PCMCIA] BadgePAD 4
- pd_ignore_unused
- [PM]
- Keep all power-domains already enabled by bootloader on,
- even if no driver has claimed them. This is useful
- for debug and development, but should not be
- needed on a platform with proper driver support.
- pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at
- boot time.
- Format: { 0 | 1 }
- See arch/parisc/kernel/pdc_chassis.c
- percpu_alloc= [MM,EARLY]
- Select which percpu first chunk allocator to use.
- Currently supported values are "embed" and "page".
- Archs may support subset or none of the selections.
- See comments in mm/percpu.c for details on each
- allocator. This parameter is primarily for debugging
- and performance comparison.
- pirq= [SMP,APIC] Manual mp-table setup
- See Documentation/arch/x86/i386/IO-APIC.rst.
- plip= [PPT,NET] Parallel port network link
- Format: { parport<nr> | timid | 0 }
- See also Documentation/admin-guide/parport.rst.
- pmtmr= [X86] Manual setup of pmtmr I/O Port.
- Override pmtimer IOPort with a hex value.
- e.g. pmtmr=0x508
- pmu_override= [PPC] Override the PMU.
- This option takes over the PMU facility, so it is no
- longer usable by perf. Setting this option starts the
- PMU counters by setting MMCR0 to 0 (the FC bit is
- cleared). If a number is given, then MMCR1 is set to
- that number, otherwise (e.g., 'pmu_override=on'), MMCR1
- remains 0.
- pm_debug_messages [SUSPEND,KNL]
- Enable suspend/resume debug messages during boot up.
- pnp.debug=1 [PNP]
- Enable PNP debug messages (depends on the
- CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time
- via /sys/module/pnp/parameters/debug. We always show
- current resource usage; turning this on also shows
- possible settings and some assignment information.
- pnpacpi= [ACPI]
- { off }
- pnpbios= [ISAPNP]
- { on | off | curr | res | no-curr | no-res }
- pnp_reserve_irq=
- [ISAPNP] Exclude IRQs for the autoconfiguration
- pnp_reserve_dma=
- [ISAPNP] Exclude DMAs for the autoconfiguration
- pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration
- Ranges are in pairs (I/O port base and size).
- pnp_reserve_mem=
- [ISAPNP] Exclude memory regions for the
- autoconfiguration.
- Ranges are in pairs (memory base and size).
- ports= [IP_VS_FTP] IPVS ftp helper module
- Default is 21.
- Up to 8 (IP_VS_APP_MAX_PORTS) ports
- may be specified.
- Format: <port>,<port>....
- possible_cpus= [SMP,S390,X86]
- Format: <unsigned int>
- Set the number of possible CPUs, overriding the
- regular discovery mechanisms (such as ACPI/FW, etc).
- powersave=off [PPC] This option disables power saving features.
- It specifically disables cpuidle and sets the
- platform machine description specific power_save
- function to NULL. On Idle the CPU just reduces
- execution priority.
- ppc_strict_facility_enable
- [PPC,ENABLE] This option catches any kernel floating point,
- Altivec, VSX and SPE outside of regions specifically
- allowed (eg kernel_enable_fpu()/kernel_disable_fpu()).
- There is some performance impact when enabling this.
- ppc_tm= [PPC,EARLY]
- Format: {"off"}
- Disable Hardware Transactional Memory
- preempt= [KNL]
- Select preemption mode if you have CONFIG_PREEMPT_DYNAMIC
- none - Limited to cond_resched() calls
- voluntary - Limited to cond_resched() and might_sleep() calls
- full - Any section that isn't explicitly preempt disabled
- can be preempted anytime. Tasks will also yield
- contended spinlocks (if the critical section isn't
- explicitly preempt disabled beyond the lock itself).
- print-fatal-signals=
- [KNL] debug: print fatal signals
- If enabled, warn about various signal handling
- related application anomalies: too many signals,
- too many POSIX.1 timers, fatal signals causing a
- coredump - etc.
- If you hit the warning due to signal overflow,
- you might want to try "ulimit -i unlimited".
- default: off.
- printk.always_kmsg_dump=
- Trigger kmsg_dump for cases other than kernel oops or
- panics
- Format: <bool> (1/Y/y=enable, 0/N/n=disable)
- default: disabled
- printk.console_no_auto_verbose=
- Disable console loglevel raise on oops, panic
- or lockdep-detected issues (only if lock debug is on).
- With an exception to setups with low baudrate on
- serial console, keeping this 0 is a good choice
- in order to provide more debug information.
- Format: <bool>
- default: 0 (auto_verbose is enabled)
- printk.devkmsg={on,off,ratelimit}
- Control writing to /dev/kmsg.
- on - unlimited logging to /dev/kmsg from userspace
- off - logging to /dev/kmsg disabled
- ratelimit - ratelimit the logging
- Default: ratelimit
- printk.time= Show timing data prefixed to each printk message line
- Format: <bool> (1/Y/y=enable, 0/N/n=disable)
- proc_mem.force_override= [KNL]
- Format: {always | ptrace | never}
- Traditionally /proc/pid/mem allows memory permissions to be
- overridden without restrictions. This option may be set to
- restrict that. Can be one of:
- - 'always': traditional behavior always allows mem overrides.
- - 'ptrace': only allow mem overrides for active ptracers.
- - 'never': never allow mem overrides.
- If not specified, default is the CONFIG_PROC_MEM_* choice.
- processor.max_cstate= [HW,ACPI]
- Limit processor to maximum C-state
- max_cstate=9 overrides any DMI blacklist limit.
- processor.nocst [HW,ACPI]
- Ignore the _CST method to determine C-states,
- instead using the legacy FADT method
- profile= [KNL] Enable kernel profiling via /proc/profile
- Format: [<profiletype>,]<number>
- Param: <profiletype>: "schedule" or "kvm"
- [defaults to kernel profiling]
- Param: "schedule" - profile schedule points.
- Param: "kvm" - profile VM exits.
- Param: <number> - step/bucket size as a power of 2 for
- statistical time based profiling.
- prompt_ramdisk= [RAM] [Deprecated]
- prot_virt= [S390] enable hosting protected virtual machines
- isolated from the hypervisor (if hardware supports
- that). If enabled, the default kernel base address
- might be overridden even when Kernel Address Space
- Layout Randomization is disabled.
- Format: <bool>
- psi= [KNL] Enable or disable pressure stall information
- tracking.
- Format: <bool>
- psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
- probe for; one of (bare|imps|exps|lifebook|any).
- psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports
- per second.
- psmouse.resetafter= [HW,MOUSE]
- Try to reset the device after so many bad packets
- (0 = never).
- psmouse.resolution=
- [HW,MOUSE] Set desired mouse resolution, in dpi.
- psmouse.smartscroll=
- [HW,MOUSE] Controls Logitech smartscroll autorepeat.
- 0 = disabled, 1 = enabled (default).
- pstore.backend= Specify the name of the pstore backend to use
- pti= [X86-64] Control Page Table Isolation of user and
- kernel address spaces. Disabling this feature
- removes hardening, but improves performance of
- system calls and interrupts.
- on - unconditionally enable
- off - unconditionally disable
- auto - kernel detects whether your CPU model is
- vulnerable to issues that PTI mitigates
- Not specifying this option is equivalent to pti=auto.
- pty.legacy_count=
- [KNL] Number of legacy pty's. Overwrites compiled-in
- default number.
- quiet [KNL,EARLY] Disable most log messages
- r128= [HW,DRM]
- radix_hcall_invalidate=on [PPC/PSERIES]
- Disable RADIX GTSE feature and use hcall for TLB
- invalidate.
- raid= [HW,RAID]
- See Documentation/admin-guide/md.rst.
- ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
- See Documentation/admin-guide/blockdev/ramdisk.rst.
- ramdisk_start= [RAM] RAM disk image start address
- random.trust_cpu=off
- [KNL,EARLY] Disable trusting the use of the CPU's
- random number generator (if available) to
- initialize the kernel's RNG.
- random.trust_bootloader=off
- [KNL,EARLY] Disable trusting the use of the a seed
- passed by the bootloader (if available) to
- initialize the kernel's RNG.
- randomize_kstack_offset=
- [KNL,EARLY] Enable or disable kernel stack offset
- randomization, which provides roughly 5 bits of
- entropy, frustrating memory corruption attacks
- that depend on stack address determinism or
- cross-syscall address exposures. This is only
- available on architectures that have defined
- CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET.
- Format: <bool> (1/Y/y=enable, 0/N/n=disable)
- Default is CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT.
- ras=option[,option,...] [KNL] RAS-specific options
- cec_disable [X86]
- Disable the Correctable Errors Collector,
- see CONFIG_RAS_CEC help text.
- rcu_nocbs[=cpu-list]
- [KNL] The optional argument is a cpu list,
- as described above.
- In kernels built with CONFIG_RCU_NOCB_CPU=y,
- enable the no-callback CPU mode, which prevents
- such CPUs' callbacks from being invoked in
- softirq context. Invocation of such CPUs' RCU
- callbacks will instead be offloaded to "rcuox/N"
- kthreads created for that purpose, where "x" is
- "p" for RCU-preempt, "s" for RCU-sched, and "g"
- for the kthreads that mediate grace periods; and
- "N" is the CPU number. This reduces OS jitter on
- the offloaded CPUs, which can be useful for HPC
- and real-time workloads. It can also improve
- energy efficiency for asymmetric multiprocessors.
- If a cpulist is passed as an argument, the specified
- list of CPUs is set to no-callback mode from boot.
- Otherwise, if the '=' sign and the cpulist
- arguments are omitted, no CPU will be set to
- no-callback mode from boot but the mode may be
- toggled at runtime via cpusets.
- Note that this argument takes precedence over
- the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option.
- rcu_nocb_poll [KNL]
- Rather than requiring that offloaded CPUs
- (specified by rcu_nocbs= above) explicitly
- awaken the corresponding "rcuoN" kthreads,
- make these kthreads poll for callbacks.
- This improves the real-time response for the
- offloaded CPUs by relieving them of the need to
- wake up the corresponding kthread, but degrades
- energy efficiency by requiring that the kthreads
- periodically wake up to do the polling.
- rcutree.blimit= [KNL]
- Set maximum number of finished RCU callbacks to
- process in one batch.
- rcutree.csd_lock_suppress_rcu_stall= [KNL]
- Do only a one-line RCU CPU stall warning when
- there is an ongoing too-long CSD-lock wait.
- rcutree.do_rcu_barrier= [KNL]
- Request a call to rcu_barrier(). This is
- throttled so that userspace tests can safely
- hammer on the sysfs variable if they so choose.
- If triggered before the RCU grace-period machinery
- is fully active, this will error out with EAGAIN.
- rcutree.dump_tree= [KNL]
- Dump the structure of the rcu_node combining tree
- out at early boot. This is used for diagnostic
- purposes, to verify correct tree setup.
- rcutree.gp_cleanup_delay= [KNL]
- Set the number of jiffies to delay each step of
- RCU grace-period cleanup.
- rcutree.gp_init_delay= [KNL]
- Set the number of jiffies to delay each step of
- RCU grace-period initialization.
- rcutree.gp_preinit_delay= [KNL]
- Set the number of jiffies to delay each step of
- RCU grace-period pre-initialization, that is,
- the propagation of recent CPU-hotplug changes up
- the rcu_node combining tree.
- rcutree.jiffies_till_first_fqs= [KNL]
- Set delay from grace-period initialization to
- first attempt to force quiescent states.
- Units are jiffies, minimum value is zero,
- and maximum value is HZ.
- rcutree.jiffies_till_next_fqs= [KNL]
- Set delay between subsequent attempts to force
- quiescent states. Units are jiffies, minimum
- value is one, and maximum value is HZ.
- rcutree.jiffies_till_sched_qs= [KNL]
- Set required age in jiffies for a
- given grace period before RCU starts
- soliciting quiescent-state help from
- rcu_note_context_switch() and cond_resched().
- If not specified, the kernel will calculate
- a value based on the most recent settings
- of rcutree.jiffies_till_first_fqs
- and rcutree.jiffies_till_next_fqs.
- This calculated value may be viewed in
- rcutree.jiffies_to_sched_qs. Any attempt to set
- rcutree.jiffies_to_sched_qs will be cheerfully
- overwritten.
- rcutree.kthread_prio= [KNL,BOOT]
- Set the SCHED_FIFO priority of the RCU per-CPU
- kthreads (rcuc/N). This value is also used for
- the priority of the RCU boost threads (rcub/N)
- and for the RCU grace-period kthreads (rcu_bh,
- rcu_preempt, and rcu_sched). If RCU_BOOST is
- set, valid values are 1-99 and the default is 1
- (the least-favored priority). Otherwise, when
- RCU_BOOST is not set, valid values are 0-99 and
- the default is zero (non-realtime operation).
- When RCU_NOCB_CPU is set, also adjust the
- priority of NOCB callback kthreads.
- rcutree.nocb_nobypass_lim_per_jiffy= [KNL]
- On callback-offloaded (rcu_nocbs) CPUs,
- RCU reduces the lock contention that would
- otherwise be caused by callback floods through
- use of the ->nocb_bypass list. However, in the
- common non-flooded case, RCU queues directly to
- the main ->cblist in order to avoid the extra
- overhead of the ->nocb_bypass list and its lock.
- But if there are too many callbacks queued during
- a single jiffy, RCU pre-queues the callbacks into
- the ->nocb_bypass queue. The definition of "too
- many" is supplied by this kernel boot parameter.
- rcutree.nohz_full_patience_delay= [KNL]
- On callback-offloaded (rcu_nocbs) CPUs, avoid
- disturbing RCU unless the grace period has
- reached the specified age in milliseconds.
- Defaults to zero. Large values will be capped
- at five seconds. All values will be rounded down
- to the nearest value representable by jiffies.
- rcutree.qhimark= [KNL]
- Set threshold of queued RCU callbacks beyond which
- batch limiting is disabled.
- rcutree.qlowmark= [KNL]
- Set threshold of queued RCU callbacks below which
- batch limiting is re-enabled.
- rcutree.qovld= [KNL]
- Set threshold of queued RCU callbacks beyond which
- RCU's force-quiescent-state scan will aggressively
- enlist help from cond_resched() and sched IPIs to
- help CPUs more quickly reach quiescent states.
- Set to less than zero to make this be set based
- on rcutree.qhimark at boot time and to zero to
- disable more aggressive help enlistment.
- rcutree.rcu_delay_page_cache_fill_msec= [KNL]
- Set the page-cache refill delay (in milliseconds)
- in response to low-memory conditions. The range
- of permitted values is in the range 0:100000.
- rcutree.rcu_divisor= [KNL]
- Set the shift-right count to use to compute
- the callback-invocation batch limit bl from
- the number of callbacks queued on this CPU.
- The result will be bounded below by the value of
- the rcutree.blimit kernel parameter. Every bl
- callbacks, the softirq handler will exit in
- order to allow the CPU to do other work.
- Please note that this callback-invocation batch
- limit applies only to non-offloaded callback
- invocation. Offloaded callbacks are instead
- invoked in the context of an rcuoc kthread, which
- scheduler will preempt as it does any other task.
- rcutree.rcu_fanout_exact= [KNL]
- Disable autobalancing of the rcu_node combining
- tree. This is used by rcutorture, and might
- possibly be useful for architectures having high
- cache-to-cache transfer latencies.
- rcutree.rcu_fanout_leaf= [KNL]
- Change the number of CPUs assigned to each
- leaf rcu_node structure. Useful for very
- large systems, which will choose the value 64,
- and for NUMA systems with large remote-access
- latencies, which will choose a value aligned
- with the appropriate hardware boundaries.
- rcutree.rcu_min_cached_objs= [KNL]
- Minimum number of objects which are cached and
- maintained per one CPU. Object size is equal
- to PAGE_SIZE. The cache allows to reduce the
- pressure to page allocator, also it makes the
- whole algorithm to behave better in low memory
- condition.
- rcutree.rcu_nocb_gp_stride= [KNL]
- Set the number of NOCB callback kthreads in
- each group, which defaults to the square root
- of the number of CPUs. Larger numbers reduce
- the wakeup overhead on the global grace-period
- kthread, but increases that same overhead on
- each group's NOCB grace-period kthread.
- rcutree.rcu_kick_kthreads= [KNL]
- Cause the grace-period kthread to get an extra
- wake_up() if it sleeps three times longer than
- it should at force-quiescent-state time.
- This wake_up() will be accompanied by a
- WARN_ONCE() splat and an ftrace_dump().
- rcutree.rcu_resched_ns= [KNL]
- Limit the time spend invoking a batch of RCU
- callbacks to the specified number of nanoseconds.
- By default, this limit is checked only once
- every 32 callbacks in order to limit the pain
- inflicted by local_clock() overhead.
- rcutree.rcu_unlock_delay= [KNL]
- In CONFIG_RCU_STRICT_GRACE_PERIOD=y kernels,
- this specifies an rcu_read_unlock()-time delay
- in microseconds. This defaults to zero.
- Larger delays increase the probability of
- catching RCU pointer leaks, that is, buggy use
- of RCU-protected pointers after the relevant
- rcu_read_unlock() has completed.
- rcutree.sysrq_rcu= [KNL]
- Commandeer a sysrq key to dump out Tree RCU's
- rcu_node tree with an eye towards determining
- why a new grace period has not yet started.
- rcutree.use_softirq= [KNL]
- If set to zero, move all RCU_SOFTIRQ processing to
- per-CPU rcuc kthreads. Defaults to a non-zero
- value, meaning that RCU_SOFTIRQ is used by default.
- Specify rcutree.use_softirq=0 to use rcuc kthreads.
- But note that CONFIG_PREEMPT_RT=y kernels disable
- this kernel boot parameter, forcibly setting it
- to zero.
- rcutree.enable_rcu_lazy= [KNL]
- To save power, batch RCU callbacks and flush after
- delay, memory pressure or callback list growing too
- big.
- rcutree.rcu_normal_wake_from_gp= [KNL]
- Reduces a latency of synchronize_rcu() call. This approach
- maintains its own track of synchronize_rcu() callers, so it
- does not interact with regular callbacks because it does not
- use a call_rcu[_hurry]() path. Please note, this is for a
- normal grace period.
- How to enable it:
- echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp
- or pass a boot parameter "rcutree.rcu_normal_wake_from_gp=1"
- Default is 0.
- rcuscale.gp_async= [KNL]
- Measure performance of asynchronous
- grace-period primitives such as call_rcu().
- rcuscale.gp_async_max= [KNL]
- Specify the maximum number of outstanding
- callbacks per writer thread. When a writer
- thread exceeds this limit, it invokes the
- corresponding flavor of rcu_barrier() to allow
- previously posted callbacks to drain.
- rcuscale.gp_exp= [KNL]
- Measure performance of expedited synchronous
- grace-period primitives.
- rcuscale.holdoff= [KNL]
- Set test-start holdoff period. The purpose of
- this parameter is to delay the start of the
- test until boot completes in order to avoid
- interference.
- rcuscale.kfree_by_call_rcu= [KNL]
- In kernels built with CONFIG_RCU_LAZY=y, test
- call_rcu() instead of kfree_rcu().
- rcuscale.kfree_mult= [KNL]
- Instead of allocating an object of size kfree_obj,
- allocate one of kfree_mult * sizeof(kfree_obj).
- Defaults to 1.
- rcuscale.kfree_rcu_test= [KNL]
- Set to measure performance of kfree_rcu() flooding.
- rcuscale.kfree_rcu_test_double= [KNL]
- Test the double-argument variant of kfree_rcu().
- If this parameter has the same value as
- rcuscale.kfree_rcu_test_single, both the single-
- and double-argument variants are tested.
- rcuscale.kfree_rcu_test_single= [KNL]
- Test the single-argument variant of kfree_rcu().
- If this parameter has the same value as
- rcuscale.kfree_rcu_test_double, both the single-
- and double-argument variants are tested.
- rcuscale.kfree_nthreads= [KNL]
- The number of threads running loops of kfree_rcu().
- rcuscale.kfree_alloc_num= [KNL]
- Number of allocations and frees done in an iteration.
- rcuscale.kfree_loops= [KNL]
- Number of loops doing rcuscale.kfree_alloc_num number
- of allocations and frees.
- rcuscale.minruntime= [KNL]
- Set the minimum test run time in seconds. This
- does not affect the data-collection interval,
- but instead allows better measurement of things
- like CPU consumption.
- rcuscale.nreaders= [KNL]
- Set number of RCU readers. The value -1 selects
- N, where N is the number of CPUs. A value
- "n" less than -1 selects N-n+1, where N is again
- the number of CPUs. For example, -2 selects N
- (the number of CPUs), -3 selects N+1, and so on.
- A value of "n" less than or equal to -N selects
- a single reader.
- rcuscale.nwriters= [KNL]
- Set number of RCU writers. The values operate
- the same as for rcuscale.nreaders.
- N, where N is the number of CPUs
- rcuscale.scale_type= [KNL]
- Specify the RCU implementation to test.
- rcuscale.shutdown= [KNL]
- Shut the system down after performance tests
- complete. This is useful for hands-off automated
- testing.
- rcuscale.verbose= [KNL]
- Enable additional printk() statements.
- rcuscale.writer_holdoff= [KNL]
- Write-side holdoff between grace periods,
- in microseconds. The default of zero says
- no holdoff.
- rcuscale.writer_holdoff_jiffies= [KNL]
- Additional write-side holdoff between grace
- periods, but in jiffies. The default of zero
- says no holdoff.
- rcutorture.fqs_duration= [KNL]
- Set duration of force_quiescent_state bursts
- in microseconds.
- rcutorture.fqs_holdoff= [KNL]
- Set holdoff time within force_quiescent_state bursts
- in microseconds.
- rcutorture.fqs_stutter= [KNL]
- Set wait time between force_quiescent_state bursts
- in seconds.
- rcutorture.fwd_progress= [KNL]
- Specifies the number of kthreads to be used
- for RCU grace-period forward-progress testing
- for the types of RCU supporting this notion.
- Defaults to 1 kthread, values less than zero or
- greater than the number of CPUs cause the number
- of CPUs to be used.
- rcutorture.fwd_progress_div= [KNL]
- Specify the fraction of a CPU-stall-warning
- period to do tight-loop forward-progress testing.
- rcutorture.fwd_progress_holdoff= [KNL]
- Number of seconds to wait between successive
- forward-progress tests.
- rcutorture.fwd_progress_need_resched= [KNL]
- Enclose cond_resched() calls within checks for
- need_resched() during tight-loop forward-progress
- testing.
- rcutorture.gp_cond= [KNL]
- Use conditional/asynchronous update-side
- primitives, if available.
- rcutorture.gp_exp= [KNL]
- Use expedited update-side primitives, if available.
- rcutorture.gp_normal= [KNL]
- Use normal (non-expedited) asynchronous
- update-side primitives, if available.
- rcutorture.gp_sync= [KNL]
- Use normal (non-expedited) synchronous
- update-side primitives, if available. If all
- of rcutorture.gp_cond=, rcutorture.gp_exp=,
- rcutorture.gp_normal=, and rcutorture.gp_sync=
- are zero, rcutorture acts as if is interpreted
- they are all non-zero.
- rcutorture.irqreader= [KNL]
- Run RCU readers from irq handlers, or, more
- accurately, from a timer handler. Not all RCU
- flavors take kindly to this sort of thing.
- rcutorture.leakpointer= [KNL]
- Leak an RCU-protected pointer out of the reader.
- This can of course result in splats, and is
- intended to test the ability of things like
- CONFIG_RCU_STRICT_GRACE_PERIOD=y to detect
- such leaks.
- rcutorture.n_barrier_cbs= [KNL]
- Set callbacks/threads for rcu_barrier() testing.
- rcutorture.nfakewriters= [KNL]
- Set number of concurrent RCU writers. These just
- stress RCU, they don't participate in the actual
- test, hence the "fake".
- rcutorture.nocbs_nthreads= [KNL]
- Set number of RCU callback-offload togglers.
- Zero (the default) disables toggling.
- rcutorture.nocbs_toggle= [KNL]
- Set the delay in milliseconds between successive
- callback-offload toggling attempts.
- rcutorture.nreaders= [KNL]
- Set number of RCU readers. The value -1 selects
- N-1, where N is the number of CPUs. A value
- "n" less than -1 selects N-n-2, where N is again
- the number of CPUs. For example, -2 selects N
- (the number of CPUs), -3 selects N+1, and so on.
- rcutorture.object_debug= [KNL]
- Enable debug-object double-call_rcu() testing.
- rcutorture.onoff_holdoff= [KNL]
- Set time (s) after boot for CPU-hotplug testing.
- rcutorture.onoff_interval= [KNL]
- Set time (jiffies) between CPU-hotplug operations,
- or zero to disable CPU-hotplug testing.
- rcutorture.read_exit= [KNL]
- Set the number of read-then-exit kthreads used
- to test the interaction of RCU updaters and
- task-exit processing.
- rcutorture.read_exit_burst= [KNL]
- The number of times in a given read-then-exit
- episode that a set of read-then-exit kthreads
- is spawned.
- rcutorture.read_exit_delay= [KNL]
- The delay, in seconds, between successive
- read-then-exit testing episodes.
- rcutorture.shuffle_interval= [KNL]
- Set task-shuffle interval (s). Shuffling tasks
- allows some CPUs to go into dyntick-idle mode
- during the rcutorture test.
- rcutorture.shutdown_secs= [KNL]
- Set time (s) after boot system shutdown. This
- is useful for hands-off automated testing.
- rcutorture.stall_cpu= [KNL]
- Duration of CPU stall (s) to test RCU CPU stall
- warnings, zero to disable.
- rcutorture.stall_cpu_block= [KNL]
- Sleep while stalling if set. This will result
- in warnings from preemptible RCU in addition to
- any other stall-related activity. Note that
- in kernels built with CONFIG_PREEMPTION=n and
- CONFIG_PREEMPT_COUNT=y, this parameter will
- cause the CPU to pass through a quiescent state.
- Given CONFIG_PREEMPTION=n, this will suppress
- RCU CPU stall warnings, but will instead result
- in scheduling-while-atomic splats.
- Use of this module parameter results in splats.
- rcutorture.stall_cpu_holdoff= [KNL]
- Time to wait (s) after boot before inducing stall.
- rcutorture.stall_cpu_irqsoff= [KNL]
- Disable interrupts while stalling if set, but only
- on the first stall in the set.
- rcutorture.stall_cpu_repeat= [KNL]
- Number of times to repeat the stall sequence,
- so that rcutorture.stall_cpu_repeat=3 will result
- in four stall sequences.
- rcutorture.stall_gp_kthread= [KNL]
- Duration (s) of forced sleep within RCU
- grace-period kthread to test RCU CPU stall
- warnings, zero to disable. If both stall_cpu
- and stall_gp_kthread are specified, the
- kthread is starved first, then the CPU.
- rcutorture.stat_interval= [KNL]
- Time (s) between statistics printk()s.
- rcutorture.stutter= [KNL]
- Time (s) to stutter testing, for example, specifying
- five seconds causes the test to run for five seconds,
- wait for five seconds, and so on. This tests RCU's
- ability to transition abruptly to and from idle.
- rcutorture.test_boost= [KNL]
- Test RCU priority boosting? 0=no, 1=maybe, 2=yes.
- "Maybe" means test if the RCU implementation
- under test support RCU priority boosting.
- rcutorture.test_boost_duration= [KNL]
- Duration (s) of each individual boost test.
- rcutorture.test_boost_interval= [KNL]
- Interval (s) between each boost test.
- rcutorture.test_no_idle_hz= [KNL]
- Test RCU's dyntick-idle handling. See also the
- rcutorture.shuffle_interval parameter.
- rcutorture.torture_type= [KNL]
- Specify the RCU implementation to test.
- rcutorture.verbose= [KNL]
- Enable additional printk() statements.
- rcupdate.rcu_cpu_stall_ftrace_dump= [KNL]
- Dump ftrace buffer after reporting RCU CPU
- stall warning.
- rcupdate.rcu_cpu_stall_notifiers= [KNL]
- Provide RCU CPU stall notifiers, but see the
- warnings in the RCU_CPU_STALL_NOTIFIER Kconfig
- option's help text. TL;DR: You almost certainly
- do not want rcupdate.rcu_cpu_stall_notifiers.
- rcupdate.rcu_cpu_stall_suppress= [KNL]
- Suppress RCU CPU stall warning messages.
- rcupdate.rcu_cpu_stall_suppress_at_boot= [KNL]
- Suppress RCU CPU stall warning messages and
- rcutorture writer stall warnings that occur
- during early boot, that is, during the time
- before the init task is spawned.
- rcupdate.rcu_cpu_stall_timeout= [KNL]
- Set timeout for RCU CPU stall warning messages.
- The value is in seconds and the maximum allowed
- value is 300 seconds.
- rcupdate.rcu_exp_cpu_stall_timeout= [KNL]
- Set timeout for expedited RCU CPU stall warning
- messages. The value is in milliseconds
- and the maximum allowed value is 21000
- milliseconds. Please note that this value is
- adjusted to an arch timer tick resolution.
- Setting this to zero causes the value from
- rcupdate.rcu_cpu_stall_timeout to be used (after
- conversion from seconds to milliseconds).
- rcupdate.rcu_cpu_stall_cputime= [KNL]
- Provide statistics on the cputime and count of
- interrupts and tasks during the sampling period. For
- multiple continuous RCU stalls, all sampling periods
- begin at half of the first RCU stall timeout.
- rcupdate.rcu_exp_stall_task_details= [KNL]
- Print stack dumps of any tasks blocking the
- current expedited RCU grace period during an
- expedited RCU CPU stall warning.
- rcupdate.rcu_expedited= [KNL]
- Use expedited grace-period primitives, for
- example, synchronize_rcu_expedited() instead
- of synchronize_rcu(). This reduces latency,
- but can increase CPU utilization, degrade
- real-time latency, and degrade energy efficiency.
- No effect on CONFIG_TINY_RCU kernels.
- rcupdate.rcu_normal= [KNL]
- Use only normal grace-period primitives,
- for example, synchronize_rcu() instead of
- synchronize_rcu_expedited(). This improves
- real-time latency, CPU utilization, and
- energy efficiency, but can expose users to
- increased grace-period latency. This parameter
- overrides rcupdate.rcu_expedited. No effect on
- CONFIG_TINY_RCU kernels.
- rcupdate.rcu_normal_after_boot= [KNL]
- Once boot has completed (that is, after
- rcu_end_inkernel_boot() has been invoked), use
- only normal grace-period primitives. No effect
- on CONFIG_TINY_RCU kernels.
- But note that CONFIG_PREEMPT_RT=y kernels enables
- this kernel boot parameter, forcibly setting
- it to the value one, that is, converting any
- post-boot attempt at an expedited RCU grace
- period to instead use normal non-expedited
- grace-period processing.
- rcupdate.rcu_task_collapse_lim= [KNL]
- Set the maximum number of callbacks present
- at the beginning of a grace period that allows
- the RCU Tasks flavors to collapse back to using
- a single callback queue. This switching only
- occurs when rcupdate.rcu_task_enqueue_lim is
- set to the default value of -1.
- rcupdate.rcu_task_contend_lim= [KNL]
- Set the minimum number of callback-queuing-time
- lock-contention events per jiffy required to
- cause the RCU Tasks flavors to switch to per-CPU
- callback queuing. This switching only occurs
- when rcupdate.rcu_task_enqueue_lim is set to
- the default value of -1.
- rcupdate.rcu_task_enqueue_lim= [KNL]
- Set the number of callback queues to use for the
- RCU Tasks family of RCU flavors. The default
- of -1 allows this to be automatically (and
- dynamically) adjusted. This parameter is intended
- for use in testing.
- rcupdate.rcu_task_ipi_delay= [KNL]
- Set time in jiffies during which RCU tasks will
- avoid sending IPIs, starting with the beginning
- of a given grace period. Setting a large
- number avoids disturbing real-time workloads,
- but lengthens grace periods.
- rcupdate.rcu_task_lazy_lim= [KNL]
- Number of callbacks on a given CPU that will
- cancel laziness on that CPU. Use -1 to disable
- cancellation of laziness, but be advised that
- doing so increases the danger of OOM due to
- callback flooding.
- rcupdate.rcu_task_stall_info= [KNL]
- Set initial timeout in jiffies for RCU task stall
- informational messages, which give some indication
- of the problem for those not patient enough to
- wait for ten minutes. Informational messages are
- only printed prior to the stall-warning message
- for a given grace period. Disable with a value
- less than or equal to zero. Defaults to ten
- seconds. A change in value does not take effect
- until the beginning of the next grace period.
- rcupdate.rcu_task_stall_info_mult= [KNL]
- Multiplier for time interval between successive
- RCU task stall informational messages for a given
- RCU tasks grace period. This value is clamped
- to one through ten, inclusive. It defaults to
- the value three, so that the first informational
- message is printed 10 seconds into the grace
- period, the second at 40 seconds, the third at
- 160 seconds, and then the stall warning at 600
- seconds would prevent a fourth at 640 seconds.
- rcupdate.rcu_task_stall_timeout= [KNL]
- Set timeout in jiffies for RCU task stall
- warning messages. Disable with a value less
- than or equal to zero. Defaults to ten minutes.
- A change in value does not take effect until
- the beginning of the next grace period.
- rcupdate.rcu_tasks_lazy_ms= [KNL]
- Set timeout in milliseconds RCU Tasks asynchronous
- callback batching for call_rcu_tasks().
- A negative value will take the default. A value
- of zero will disable batching. Batching is
- always disabled for synchronize_rcu_tasks().
- rcupdate.rcu_tasks_trace_lazy_ms= [KNL]
- Set timeout in milliseconds RCU Tasks
- Trace asynchronous callback batching for
- call_rcu_tasks_trace(). A negative value
- will take the default. A value of zero will
- disable batching. Batching is always disabled
- for synchronize_rcu_tasks_trace().
- rcupdate.rcu_self_test= [KNL]
- Run the RCU early boot self tests
- rdinit= [KNL]
- Format: <full_path>
- Run specified binary instead of /init from the ramdisk,
- used for early userspace startup. See initrd.
- rdrand= [X86,EARLY]
- force - Override the decision by the kernel to hide the
- advertisement of RDRAND support (this affects
- certain AMD processors because of buggy BIOS
- support, specifically around the suspend/resume
- path).
- rdt= [HW,X86,RDT]
- Turn on/off individual RDT features. List is:
- cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp,
- mba, smba, bmec.
- E.g. to turn on cmt and turn off mba use:
- rdt=cmt,!mba
- reboot= [KNL]
- Format (x86 or x86_64):
- [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] | d[efault] \
- [[,]s[mp]#### \
- [[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \
- [[,]f[orce]
- Where reboot_mode is one of warm (soft) or cold (hard) or gpio
- (prefix with 'panic_' to set mode for panic
- reboot only),
- reboot_type is one of bios, acpi, kbd, triple, efi, or pci,
- reboot_force is either force or not specified,
- reboot_cpu is s[mp]#### with #### being the processor
- to be used for rebooting.
- refscale.holdoff= [KNL]
- Set test-start holdoff period. The purpose of
- this parameter is to delay the start of the
- test until boot completes in order to avoid
- interference.
- refscale.lookup_instances= [KNL]
- Number of data elements to use for the forms of
- SLAB_TYPESAFE_BY_RCU testing. A negative number
- is negated and multiplied by nr_cpu_ids, while
- zero specifies nr_cpu_ids.
- refscale.loops= [KNL]
- Set the number of loops over the synchronization
- primitive under test. Increasing this number
- reduces noise due to loop start/end overhead,
- but the default has already reduced the per-pass
- noise to a handful of picoseconds on ca. 2020
- x86 laptops.
- refscale.nreaders= [KNL]
- Set number of readers. The default value of -1
- selects N, where N is roughly 75% of the number
- of CPUs. A value of zero is an interesting choice.
- refscale.nruns= [KNL]
- Set number of runs, each of which is dumped onto
- the console log.
- refscale.readdelay= [KNL]
- Set the read-side critical-section duration,
- measured in microseconds.
- refscale.scale_type= [KNL]
- Specify the read-protection implementation to test.
- refscale.shutdown= [KNL]
- Shut down the system at the end of the performance
- test. This defaults to 1 (shut it down) when
- refscale is built into the kernel and to 0 (leave
- it running) when refscale is built as a module.
- refscale.verbose= [KNL]
- Enable additional printk() statements.
- refscale.verbose_batched= [KNL]
- Batch the additional printk() statements. If zero
- (the default) or negative, print everything. Otherwise,
- print every Nth verbose statement, where N is the value
- specified.
- regulator_ignore_unused
- [REGULATOR]
- Prevents regulator framework from disabling regulators
- that are unused, due no driver claiming them. This may
- be useful for debug and development, but should not be
- needed on a platform with proper driver support.
- relax_domain_level=
- [KNL, SMP] Set scheduler's default relax_domain_level.
- See Documentation/admin-guide/cgroup-v1/cpusets.rst.
- reserve= [KNL,BUGS] Force kernel to ignore I/O ports or memory
- Format: <base1>,<size1>[,<base2>,<size2>,...]
- Reserve I/O ports or memory so the kernel won't use
- them. If <base> is less than 0x10000, the region
- is assumed to be I/O ports; otherwise it is memory.
- reserve_mem= [RAM]
- Format: nn[KNG]:<align>:<label>
- Reserve physical memory and label it with a name that
- other subsystems can use to access it. This is typically
- used for systems that do not wipe the RAM, and this command
- line will try to reserve the same physical memory on
- soft reboots. Note, it is not guaranteed to be the same
- location. For example, if anything about the system changes
- or if booting a different kernel. It can also fail if KASLR
- places the kernel at the location of where the RAM reservation
- was from a previous boot, the new reservation will be at a
- different location.
- Any subsystem using this feature must add a way to verify
- that the contents of the physical memory is from a previous
- boot, as there may be cases where the memory will not be
- located at the same location.
- The format is size:align:label for example, to request
- 12 megabytes of 4096 alignment for ramoops:
- reserve_mem=12M:4096:oops ramoops.mem_name=oops
- reservetop= [X86-32,EARLY]
- Format: nn[KMG]
- Reserves a hole at the top of the kernel virtual
- address space.
- reset_devices [KNL] Force drivers to reset the underlying device
- during initialization.
- resume= [SWSUSP]
- Specify the partition device for software suspend
- Format:
- {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>}
- resume_offset= [SWSUSP]
- Specify the offset from the beginning of the partition
- given by "resume=" at which the swap header is located,
- in <PAGE_SIZE> units (needed only for swap files).
- See Documentation/power/swsusp-and-swap-files.rst
- resumedelay= [HIBERNATION] Delay (in seconds) to pause before attempting to
- read the resume files
- resumewait [HIBERNATION] Wait (indefinitely) for resume device to show up.
- Useful for devices that are detected asynchronously
- (e.g. USB and MMC devices).
- retain_initrd [RAM] Keep initrd memory after extraction. After boot, it will
- be accessible via /sys/firmware/initrd.
- retbleed= [X86] Control mitigation of RETBleed (Arbitrary
- Speculative Code Execution with Return Instructions)
- vulnerability.
- AMD-based UNRET and IBPB mitigations alone do not stop
- sibling threads from influencing the predictions of other
- sibling threads. For that reason, STIBP is used on pro-
- cessors that support it, and mitigate SMT on processors
- that don't.
- off - no mitigation
- auto - automatically select a migitation
- auto,nosmt - automatically select a mitigation,
- disabling SMT if necessary for
- the full mitigation (only on Zen1
- and older without STIBP).
- ibpb - On AMD, mitigate short speculation
- windows on basic block boundaries too.
- Safe, highest perf impact. It also
- enables STIBP if present. Not suitable
- on Intel.
- ibpb,nosmt - Like "ibpb" above but will disable SMT
- when STIBP is not available. This is
- the alternative for systems which do not
- have STIBP.
- unret - Force enable untrained return thunks,
- only effective on AMD f15h-f17h based
- systems.
- unret,nosmt - Like unret, but will disable SMT when STIBP
- is not available. This is the alternative for
- systems which do not have STIBP.
- Selecting 'auto' will choose a mitigation method at run
- time according to the CPU.
- Not specifying this option is equivalent to retbleed=auto.
- rfkill.default_state=
- 0 "airplane mode". All wifi, bluetooth, wimax, gps, fm,
- etc. communication is blocked by default.
- 1 Unblocked.
- rfkill.master_switch_mode=
- 0 The "airplane mode" button does nothing.
- 1 The "airplane mode" button toggles between everything
- blocked and the previous configuration.
- 2 The "airplane mode" button toggles between everything
- blocked and everything unblocked.
- ring3mwait=disable
- [KNL] Disable ring 3 MONITOR/MWAIT feature on supported
- CPUs.
- riscv_isa_fallback [RISCV,EARLY]
- When CONFIG_RISCV_ISA_FALLBACK is not enabled, permit
- falling back to detecting extension support by parsing
- "riscv,isa" property on devicetree systems when the
- replacement properties are not found. See the Kconfig
- entry for RISCV_ISA_FALLBACK.
- ro [KNL] Mount root device read-only on boot
- rodata= [KNL,EARLY]
- on Mark read-only kernel memory as read-only (default).
- off Leave read-only kernel memory writable for debugging.
- full Mark read-only kernel memory and aliases as read-only
- [arm64]
- rockchip.usb_uart
- [EARLY]
- Enable the uart passthrough on the designated usb port
- on Rockchip SoCs. When active, the signals of the
- debug-uart get routed to the D+ and D- pins of the usb
- port and the regular usb controller gets disabled.
- root= [KNL] Root filesystem
- Usually this a a block device specifier of some kind,
- see the early_lookup_bdev comment in
- block/early-lookup.c for details.
- Alternatively this can be "ram" for the legacy initial
- ramdisk, "nfs" and "cifs" for root on a network file
- system, or "mtd" and "ubi" for mounting from raw flash.
- rootdelay= [KNL] Delay (in seconds) to pause before attempting to
- mount the root filesystem
- rootflags= [KNL] Set root filesystem mount option string
- initramfs_options= [KNL]
- Specify mount options for for the initramfs mount.
- rootfstype= [KNL] Set root filesystem type
- rootwait [KNL] Wait (indefinitely) for root device to show up.
- Useful for devices that are detected asynchronously
- (e.g. USB and MMC devices).
- rootwait= [KNL] Maximum time (in seconds) to wait for root device
- to show up before attempting to mount the root
- filesystem.
- rproc_mem=nn[KMG][@address]
- [KNL,ARM,CMA] Remoteproc physical memory block.
- Memory area to be used by remote processor image,
- managed by CMA.
- rw [KNL] Mount root device read-write on boot
- S [KNL] Run init in single mode
- s390_iommu= [HW,S390]
- Set s390 IOTLB flushing mode
- strict
- With strict flushing every unmap operation will result
- in an IOTLB flush. Default is lazy flushing before
- reuse, which is faster. Deprecated, equivalent to
- iommu.strict=1.
- s390_iommu_aperture= [KNL,S390]
- Specifies the size of the per device DMA address space
- accessible through the DMA and IOMMU APIs as a decimal
- factor of the size of main memory.
- The default is 1 meaning that one can concurrently use
- as many DMA addresses as physical memory is installed,
- if supported by hardware, and thus map all of memory
- once. With a value of 2 one can map all of memory twice
- and so on. As a special case a factor of 0 imposes no
- restrictions other than those given by hardware at the
- cost of significant additional memory use for tables.
- sa1100ir [NET]
- See drivers/net/irda/sa1100_ir.c.
- sched_verbose [KNL,EARLY] Enables verbose scheduler debug messages.
- schedstats= [KNL,X86] Enable or disable scheduled statistics.
- Allowed values are enable and disable. This feature
- incurs a small amount of overhead in the scheduler
- but is useful for debugging and performance tuning.
- sched_thermal_decay_shift=
- [Deprecated]
- [KNL, SMP] Set a decay shift for scheduler thermal
- pressure signal. Thermal pressure signal follows the
- default decay period of other scheduler pelt
- signals(usually 32 ms but configurable). Setting
- sched_thermal_decay_shift will left shift the decay
- period for the thermal pressure signal by the shift
- value.
- i.e. with the default pelt decay period of 32 ms
- sched_thermal_decay_shift thermal pressure decay pr
- 1 64 ms
- 2 128 ms
- and so on.
- Format: integer between 0 and 10
- Default is 0.
- scftorture.holdoff= [KNL]
- Number of seconds to hold off before starting
- test. Defaults to zero for module insertion and
- to 10 seconds for built-in smp_call_function()
- tests.
- scftorture.longwait= [KNL]
- Request ridiculously long waits randomly selected
- up to the chosen limit in seconds. Zero (the
- default) disables this feature. Please note
- that requesting even small non-zero numbers of
- seconds can result in RCU CPU stall warnings,
- softlockup complaints, and so on.
- scftorture.nthreads= [KNL]
- Number of kthreads to spawn to invoke the
- smp_call_function() family of functions.
- The default of -1 specifies a number of kthreads
- equal to the number of CPUs.
- scftorture.onoff_holdoff= [KNL]
- Number seconds to wait after the start of the
- test before initiating CPU-hotplug operations.
- scftorture.onoff_interval= [KNL]
- Number seconds to wait between successive
- CPU-hotplug operations. Specifying zero (which
- is the default) disables CPU-hotplug operations.
- scftorture.shutdown_secs= [KNL]
- The number of seconds following the start of the
- test after which to shut down the system. The
- default of zero avoids shutting down the system.
- Non-zero values are useful for automated tests.
- scftorture.stat_interval= [KNL]
- The number of seconds between outputting the
- current test statistics to the console. A value
- of zero disables statistics output.
- scftorture.stutter_cpus= [KNL]
- The number of jiffies to wait between each change
- to the set of CPUs under test.
- scftorture.use_cpus_read_lock= [KNL]
- Use use_cpus_read_lock() instead of the default
- preempt_disable() to disable CPU hotplug
- while invoking one of the smp_call_function*()
- functions.
- scftorture.verbose= [KNL]
- Enable additional printk() statements.
- scftorture.weight_single= [KNL]
- The probability weighting to use for the
- smp_call_function_single() function with a zero
- "wait" parameter. A value of -1 selects the
- default if all other weights are -1. However,
- if at least one weight has some other value, a
- value of -1 will instead select a weight of zero.
- scftorture.weight_single_wait= [KNL]
- The probability weighting to use for the
- smp_call_function_single() function with a
- non-zero "wait" parameter. See weight_single.
- scftorture.weight_many= [KNL]
- The probability weighting to use for the
- smp_call_function_many() function with a zero
- "wait" parameter. See weight_single.
- Note well that setting a high probability for
- this weighting can place serious IPI load
- on the system.
- scftorture.weight_many_wait= [KNL]
- The probability weighting to use for the
- smp_call_function_many() function with a
- non-zero "wait" parameter. See weight_single
- and weight_many.
- scftorture.weight_all= [KNL]
- The probability weighting to use for the
- smp_call_function_all() function with a zero
- "wait" parameter. See weight_single and
- weight_many.
- scftorture.weight_all_wait= [KNL]
- The probability weighting to use for the
- smp_call_function_all() function with a
- non-zero "wait" parameter. See weight_single
- and weight_many.
- skew_tick= [KNL,EARLY] Offset the periodic timer tick per cpu to mitigate
- xtime_lock contention on larger systems, and/or RCU lock
- contention on all systems with CONFIG_MAXSMP set.
- Format: { "0" | "1" }
- 0 -- disable. (may be 1 via CONFIG_CMDLINE="skew_tick=1"
- 1 -- enable.
- Note: increases power consumption, thus should only be
- enabled if running jitter sensitive (HPC/RT) workloads.
- security= [SECURITY] Choose a legacy "major" security module to
- enable at boot. This has been deprecated by the
- "lsm=" parameter.
- selinux= [SELINUX] Disable or enable SELinux at boot time.
- Format: { "0" | "1" }
- See security/selinux/Kconfig help text.
- 0 -- disable.
- 1 -- enable.
- Default value is 1.
- serialnumber [BUGS=X86-32]
- sev=option[,option...] [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
- shapers= [NET]
- Maximal number of shapers.
- show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller
- Limit apic dumping. The parameter defines the maximal
- number of local apics being dumped. Also it is possible
- to set it to "all" by meaning -- no limit here.
- Format: { 1 (default) | 2 | ... | all }.
- The parameter valid if only apic=debug or
- apic=verbose is specified.
- Example: apic=debug show_lapic=all
- slab_debug[=options[,slabs][;[options[,slabs]]...] [MM]
- Enabling slab_debug allows one to determine the
- culprit if slab objects become corrupted. Enabling
- slab_debug can create guard zones around objects and
- may poison objects when not in use. Also tracks the
- last alloc / free. For more information see
- Documentation/mm/slub.rst.
- (slub_debug legacy name also accepted for now)
- slab_max_order= [MM]
- Determines the maximum allowed order for slabs.
- A high setting may cause OOMs due to memory
- fragmentation. For more information see
- Documentation/mm/slub.rst.
- (slub_max_order legacy name also accepted for now)
- slab_merge [MM]
- Enable merging of slabs with similar size when the
- kernel is built without CONFIG_SLAB_MERGE_DEFAULT.
- (slub_merge legacy name also accepted for now)
- slab_min_objects= [MM]
- The minimum number of objects per slab. SLUB will
- increase the slab order up to slab_max_order to
- generate a sufficiently large slab able to contain
- the number of objects indicated. The higher the number
- of objects the smaller the overhead of tracking slabs
- and the less frequently locks need to be acquired.
- For more information see Documentation/mm/slub.rst.
- (slub_min_objects legacy name also accepted for now)
- slab_min_order= [MM]
- Determines the minimum page order for slabs. Must be
- lower or equal to slab_max_order. For more information see
- Documentation/mm/slub.rst.
- (slub_min_order legacy name also accepted for now)
- slab_nomerge [MM]
- Disable merging of slabs with similar size. May be
- necessary if there is some reason to distinguish
- allocs to different slabs, especially in hardened
- environments where the risk of heap overflows and
- layout control by attackers can usually be
- frustrated by disabling merging. This will reduce
- most of the exposure of a heap attack to a single
- cache (risks via metadata attacks are mostly
- unchanged). Debug options disable merging on their
- own.
- For more information see Documentation/mm/slub.rst.
- (slub_nomerge legacy name also accepted for now)
- slram= [HW,MTD]
- smart2= [HW]
- Format: <io1>[,<io2>[,...,<io8>]]
- smp.csd_lock_timeout= [KNL]
- Specify the period of time in milliseconds
- that smp_call_function() and friends will wait
- for a CPU to release the CSD lock. This is
- useful when diagnosing bugs involving CPUs
- disabling interrupts for extended periods
- of time. Defaults to 5,000 milliseconds, and
- setting a value of zero disables this feature.
- This feature may be more efficiently disabled
- using the csdlock_debug- kernel parameter.
- smp.panic_on_ipistall= [KNL]
- If a csd_lock_timeout extends for more than
- the specified number of milliseconds, panic the
- system. By default, let CSD-lock acquisition
- take as long as they take. Specifying 300,000
- for this value provides a 5-minute timeout.
- smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices
- smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port
- smsc-ircc2.ircc_sir= [HW] SIR base I/O port
- smsc-ircc2.ircc_fir= [HW] FIR base I/O port
- smsc-ircc2.ircc_irq= [HW] IRQ line
- smsc-ircc2.ircc_dma= [HW] DMA channel
- smsc-ircc2.ircc_transceiver= [HW] Transceiver type:
- 0: Toshiba Satellite 1800 (GP data pin select)
- 1: Fast pin select (default)
- 2: ATC IRMode
- smt= [KNL,MIPS,S390,EARLY] Set the maximum number of threads
- (logical CPUs) to use per physical CPU on systems
- capable of symmetric multithreading (SMT). Will
- be capped to the actual hardware limit.
- Format: <integer>
- Default: -1 (no limit)
- softlockup_panic=
- [KNL] Should the soft-lockup detector generate panics.
- Format: 0 | 1
- A value of 1 instructs the soft-lockup detector
- to panic the machine when a soft-lockup occurs. It is
- also controlled by the kernel.softlockup_panic sysctl
- and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
- respective build-time switch to that functionality.
- softlockup_all_cpu_backtrace=
- [KNL] Should the soft-lockup detector generate
- backtraces on all cpus.
- Format: 0 | 1
- sonypi.*= [HW] Sony Programmable I/O Control Device driver
- See Documentation/admin-guide/laptops/sonypi.rst
- spectre_bhi= [X86] Control mitigation of Branch History Injection
- (BHI) vulnerability. This setting affects the
- deployment of the HW BHI control and the SW BHB
- clearing sequence.
- on - (default) Enable the HW or SW mitigation as
- needed. This protects the kernel from
- both syscalls and VMs.
- vmexit - On systems which don't have the HW mitigation
- available, enable the SW mitigation on vmexit
- ONLY. On such systems, the host kernel is
- protected from VM-originated BHI attacks, but
- may still be vulnerable to syscall attacks.
- off - Disable the mitigation.
- spectre_v2= [X86,EARLY] Control mitigation of Spectre variant 2
- (indirect branch speculation) vulnerability.
- The default operation protects the kernel from
- user space attacks.
- on - unconditionally enable, implies
- spectre_v2_user=on
- off - unconditionally disable, implies
- spectre_v2_user=off
- auto - kernel detects whether your CPU model is
- vulnerable
- Selecting 'on' will, and 'auto' may, choose a
- mitigation method at run time according to the
- CPU, the available microcode, the setting of the
- CONFIG_MITIGATION_RETPOLINE configuration option,
- and the compiler with which the kernel was built.
- Selecting 'on' will also enable the mitigation
- against user space to user space task attacks.
- Selecting specific mitigation does not force enable
- user mitigations.
- Selecting 'off' will disable both the kernel and
- the user space protections.
- Specific mitigations can also be selected manually:
- retpoline - replace indirect branches
- retpoline,generic - Retpolines
- retpoline,lfence - LFENCE; indirect branch
- retpoline,amd - alias for retpoline,lfence
- eibrs - Enhanced/Auto IBRS
- eibrs,retpoline - Enhanced/Auto IBRS + Retpolines
- eibrs,lfence - Enhanced/Auto IBRS + LFENCE
- ibrs - use IBRS to protect kernel
- Not specifying this option is equivalent to
- spectre_v2=auto.
- spectre_v2_user=
- [X86] Control mitigation of Spectre variant 2
- (indirect branch speculation) vulnerability between
- user space tasks
- on - Unconditionally enable mitigations. Is
- enforced by spectre_v2=on
- off - Unconditionally disable mitigations. Is
- enforced by spectre_v2=off
- prctl - Indirect branch speculation is enabled,
- but mitigation can be enabled via prctl
- per thread. The mitigation control state
- is inherited on fork.
- prctl,ibpb
- - Like "prctl" above, but only STIBP is
- controlled per thread. IBPB is issued
- always when switching between different user
- space processes.
- seccomp
- - Same as "prctl" above, but all seccomp
- threads will enable the mitigation unless
- they explicitly opt out.
- seccomp,ibpb
- - Like "seccomp" above, but only STIBP is
- controlled per thread. IBPB is issued
- always when switching between different
- user space processes.
- auto - Kernel selects the mitigation depending on
- the available CPU features and vulnerability.
- Default mitigation: "prctl"
- Not specifying this option is equivalent to
- spectre_v2_user=auto.
- spec_rstack_overflow=
- [X86,EARLY] Control RAS overflow mitigation on AMD Zen CPUs
- off - Disable mitigation
- microcode - Enable microcode mitigation only
- safe-ret - Enable sw-only safe RET mitigation (default)
- ibpb - Enable mitigation by issuing IBPB on
- kernel entry
- ibpb-vmexit - Issue IBPB only on VMEXIT
- (cloud-specific mitigation)
- spec_store_bypass_disable=
- [HW,EARLY] Control Speculative Store Bypass (SSB) Disable mitigation
- (Speculative Store Bypass vulnerability)
- Certain CPUs are vulnerable to an exploit against a
- a common industry wide performance optimization known
- as "Speculative Store Bypass" in which recent stores
- to the same memory location may not be observed by
- later loads during speculative execution. The idea
- is that such stores are unlikely and that they can
- be detected prior to instruction retirement at the
- end of a particular speculation execution window.
- In vulnerable processors, the speculatively forwarded
- store can be used in a cache side channel attack, for
- example to read memory to which the attacker does not
- directly have access (e.g. inside sandboxed code).
- This parameter controls whether the Speculative Store
- Bypass optimization is used.
- On x86 the options are:
- on - Unconditionally disable Speculative Store Bypass
- off - Unconditionally enable Speculative Store Bypass
- auto - Kernel detects whether the CPU model contains an
- implementation of Speculative Store Bypass and
- picks the most appropriate mitigation. If the
- CPU is not vulnerable, "off" is selected. If the
- CPU is vulnerable the default mitigation is
- architecture and Kconfig dependent. See below.
- prctl - Control Speculative Store Bypass per thread
- via prctl. Speculative Store Bypass is enabled
- for a process by default. The state of the control
- is inherited on fork.
- seccomp - Same as "prctl" above, but all seccomp threads
- will disable SSB unless they explicitly opt out.
- Default mitigations:
- X86: "prctl"
- On powerpc the options are:
- on,auto - On Power8 and Power9 insert a store-forwarding
- barrier on kernel entry and exit. On Power7
- perform a software flush on kernel entry and
- exit.
- off - No action.
- Not specifying this option is equivalent to
- spec_store_bypass_disable=auto.
- split_lock_detect=
- [X86] Enable split lock detection or bus lock detection
- When enabled (and if hardware support is present), atomic
- instructions that access data across cache line
- boundaries will result in an alignment check exception
- for split lock detection or a debug exception for
- bus lock detection.
- off - not enabled
- warn - the kernel will emit rate-limited warnings
- about applications triggering the #AC
- exception or the #DB exception. This mode is
- the default on CPUs that support split lock
- detection or bus lock detection. Default
- behavior is by #AC if both features are
- enabled in hardware.
- fatal - the kernel will send SIGBUS to applications
- that trigger the #AC exception or the #DB
- exception. Default behavior is by #AC if
- both features are enabled in hardware.
- ratelimit:N -
- Set system wide rate limit to N bus locks
- per second for bus lock detection.
- 0 < N <= 1000.
- N/A for split lock detection.
- If an #AC exception is hit in the kernel or in
- firmware (i.e. not while executing in user mode)
- the kernel will oops in either "warn" or "fatal"
- mode.
- #DB exception for bus lock is triggered only when
- CPL > 0.
- srbds= [X86,INTEL,EARLY]
- Control the Special Register Buffer Data Sampling
- (SRBDS) mitigation.
- Certain CPUs are vulnerable to an MDS-like
- exploit which can leak bits from the random
- number generator.
- By default, this issue is mitigated by
- microcode. However, the microcode fix can cause
- the RDRAND and RDSEED instructions to become
- much slower. Among other effects, this will
- result in reduced throughput from /dev/urandom.
- The microcode mitigation can be disabled with
- the following option:
- off: Disable mitigation and remove
- performance impact to RDRAND and RDSEED
- srcutree.big_cpu_lim [KNL]
- Specifies the number of CPUs constituting a
- large system, such that srcu_struct structures
- should immediately allocate an srcu_node array.
- This kernel-boot parameter defaults to 128,
- but takes effect only when the low-order four
- bits of srcutree.convert_to_big is equal to 3
- (decide at boot).
- srcutree.convert_to_big [KNL]
- Specifies under what conditions an SRCU tree
- srcu_struct structure will be converted to big
- form, that is, with an rcu_node tree:
- 0: Never.
- 1: At init_srcu_struct() time.
- 2: When rcutorture decides to.
- 3: Decide at boot time (default).
- 0x1X: Above plus if high contention.
- Either way, the srcu_node tree will be sized based
- on the actual runtime number of CPUs (nr_cpu_ids)
- instead of the compile-time CONFIG_NR_CPUS.
- srcutree.counter_wrap_check [KNL]
- Specifies how frequently to check for
- grace-period sequence counter wrap for the
- srcu_data structure's ->srcu_gp_seq_needed field.
- The greater the number of bits set in this kernel
- parameter, the less frequently counter wrap will
- be checked for. Note that the bottom two bits
- are ignored.
- srcutree.exp_holdoff [KNL]
- Specifies how many nanoseconds must elapse
- since the end of the last SRCU grace period for
- a given srcu_struct until the next normal SRCU
- grace period will be considered for automatic
- expediting. Set to zero to disable automatic
- expediting.
- srcutree.srcu_max_nodelay [KNL]
- Specifies the number of no-delay instances
- per jiffy for which the SRCU grace period
- worker thread will be rescheduled with zero
- delay. Beyond this limit, worker thread will
- be rescheduled with a sleep delay of one jiffy.
- srcutree.srcu_max_nodelay_phase [KNL]
- Specifies the per-grace-period phase, number of
- non-sleeping polls of readers. Beyond this limit,
- grace period worker thread will be rescheduled
- with a sleep delay of one jiffy, between each
- rescan of the readers, for a grace period phase.
- srcutree.srcu_retry_check_delay [KNL]
- Specifies number of microseconds of non-sleeping
- delay between each non-sleeping poll of readers.
- srcutree.small_contention_lim [KNL]
- Specifies the number of update-side contention
- events per jiffy will be tolerated before
- initiating a conversion of an srcu_struct
- structure to big form. Note that the value of
- srcutree.convert_to_big must have the 0x10 bit
- set for contention-based conversions to occur.
- ssbd= [ARM64,HW,EARLY]
- Speculative Store Bypass Disable control
- On CPUs that are vulnerable to the Speculative
- Store Bypass vulnerability and offer a
- firmware based mitigation, this parameter
- indicates how the mitigation should be used:
- force-on: Unconditionally enable mitigation for
- for both kernel and userspace
- force-off: Unconditionally disable mitigation for
- for both kernel and userspace
- kernel: Always enable mitigation in the
- kernel, and offer a prctl interface
- to allow userspace to register its
- interest in being mitigated too.
- stack_guard_gap= [MM]
- override the default stack gap protection. The value
- is in page units and it defines how many pages prior
- to (for stacks growing down) resp. after (for stacks
- growing up) the main stack are reserved for no other
- mapping. Default value is 256 pages.
- stack_depot_disable= [KNL,EARLY]
- Setting this to true through kernel command line will
- disable the stack depot thereby saving the static memory
- consumed by the stack hash table. By default this is set
- to false.
- stacktrace [FTRACE]
- Enabled the stack tracer on boot up.
- stacktrace_filter=[function-list]
- [FTRACE] Limit the functions that the stack tracer
- will trace at boot up. function-list is a comma-separated
- list of functions. This list can be changed at run
- time by the stack_trace_filter file in the debugfs
- tracing directory. Note, this enables stack tracing
- and the stacktrace above is not needed.
- sti= [PARISC,HW]
- Format: <num>
- Set the STI (builtin display/keyboard on the HP-PARISC
- machines) console (graphic card) which should be used
- as the initial boot-console.
- See also comment in drivers/video/console/sticore.c.
- sti_font= [HW]
- See comment in drivers/video/console/sticore.c.
- stifb= [HW]
- Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]]
- strict_sas_size=
- [X86]
- Format: <bool>
- Enable or disable strict sigaltstack size checks
- against the required signal frame size which
- depends on the supported FPU features. This can
- be used to filter out binaries which have
- not yet been made aware of AT_MINSIGSTKSZ.
- stress_hpt [PPC,EARLY]
- Limits the number of kernel HPT entries in the hash
- page table to increase the rate of hash page table
- faults on kernel addresses.
- stress_slb [PPC,EARLY]
- Limits the number of kernel SLB entries, and flushes
- them frequently to increase the rate of SLB faults
- on kernel addresses.
- sunrpc.min_resvport=
- sunrpc.max_resvport=
- [NFS,SUNRPC]
- SunRPC servers often require that client requests
- originate from a privileged port (i.e. a port in the
- range 0 < portnr < 1024).
- An administrator who wishes to reserve some of these
- ports for other uses may adjust the range that the
- kernel's sunrpc client considers to be privileged
- using these two parameters to set the minimum and
- maximum port values.
- sunrpc.svc_rpc_per_connection_limit=
- [NFS,SUNRPC]
- Limit the number of requests that the server will
- process in parallel from a single connection.
- The default value is 0 (no limit).
- sunrpc.pool_mode=
- [NFS]
- Control how the NFS server code allocates CPUs to
- service thread pools. Depending on how many NICs
- you have and where their interrupts are bound, this
- option will affect which CPUs will do NFS serving.
- Note: this parameter cannot be changed while the
- NFS server is running.
- auto the server chooses an appropriate mode
- automatically using heuristics
- global a single global pool contains all CPUs
- percpu one pool for each CPU
- pernode one pool for each NUMA node (equivalent
- to global on non-NUMA machines)
- sunrpc.tcp_slot_table_entries=
- sunrpc.udp_slot_table_entries=
- [NFS,SUNRPC]
- Sets the upper limit on the number of simultaneous
- RPC calls that can be sent from the client to a
- server. Increasing these values may allow you to
- improve throughput, but will also increase the
- amount of memory reserved for use by the client.
- suspend.pm_test_delay=
- [SUSPEND]
- Sets the number of seconds to remain in a suspend test
- mode before resuming the system (see
- /sys/power/pm_test). Only available when CONFIG_PM_DEBUG
- is set. Default value is 5.
- svm= [PPC]
- Format: { on | off | y | n | 1 | 0 }
- This parameter controls use of the Protected
- Execution Facility on pSeries.
- swiotlb= [ARM,PPC,MIPS,X86,S390,EARLY]
- Format: { <int> [,<int>] | force | noforce }
- <int> -- Number of I/O TLB slabs
- <int> -- Second integer after comma. Number of swiotlb
- areas with their own lock. Will be rounded up
- to a power of 2.
- force -- force using of bounce buffers even if they
- wouldn't be automatically used by the kernel
- noforce -- Never use bounce buffers (for debugging)
- switches= [HW,M68k,EARLY]
- sysctl.*= [KNL]
- Set a sysctl parameter, right before loading the init
- process, as if the value was written to the respective
- /proc/sys/... file. Both '.' and '/' are recognized as
- separators. Unrecognized parameters and invalid values
- are reported in the kernel log. Sysctls registered
- later by a loaded module cannot be set this way.
- Example: sysctl.vm.swappiness=40
- sysrq_always_enabled
- [KNL]
- Ignore sysrq setting - this boot parameter will
- neutralize any effect of /proc/sys/kernel/sysrq.
- Useful for debugging.
- tcpmhash_entries= [KNL,NET]
- Set the number of tcp_metrics_hash slots.
- Default value is 8192 or 16384 depending on total
- ram pages. This is used to specify the TCP metrics
- cache size. See Documentation/networking/ip-sysctl.rst
- "tcp_no_metrics_save" section for more details.
- tdfx= [HW,DRM]
- test_suspend= [SUSPEND]
- Format: { "mem" | "standby" | "freeze" }[,N]
- Specify "mem" (for Suspend-to-RAM) or "standby" (for
- standby suspend) or "freeze" (for suspend type freeze)
- as the system sleep state during system startup with
- the optional capability to repeat N number of times.
- The system is woken from this state using a
- wakeup-capable RTC alarm.
- thash_entries= [KNL,NET]
- Set number of hash buckets for TCP connection
- thermal.act= [HW,ACPI]
- -1: disable all active trip points in all thermal zones
- <degrees C>: override all lowest active trip points
- thermal.crt= [HW,ACPI]
- -1: disable all critical trip points in all thermal zones
- <degrees C>: override all critical trip points
- thermal.off= [HW,ACPI]
- 1: disable ACPI thermal control
- thermal.psv= [HW,ACPI]
- -1: disable all passive trip points
- <degrees C>: override all passive trip points to this
- value
- thermal.tzp= [HW,ACPI]
- Specify global default ACPI thermal zone polling rate
- <deci-seconds>: poll all this frequency
- 0: no polling (default)
- thp_anon= [KNL]
- Format: <size>[KMG],<size>[KMG]:<state>;<size>[KMG]-<size>[KMG]:<state>
- state is one of "always", "madvise", "never" or "inherit".
- Control the default behavior of the system with respect
- to anonymous transparent hugepages.
- Can be used multiple times for multiple anon THP sizes.
- See Documentation/admin-guide/mm/transhuge.rst for more
- details.
- threadirqs [KNL,EARLY]
- Force threading of all interrupt handlers except those
- marked explicitly IRQF_NO_THREAD.
- topology= [S390,EARLY]
- Format: {off | on}
- Specify if the kernel should make use of the cpu
- topology information if the hardware supports this.
- The scheduler will make use of this information and
- e.g. base its process migration decisions on it.
- Default is on.
- torture.disable_onoff_at_boot= [KNL]
- Prevent the CPU-hotplug component of torturing
- until after init has spawned.
- torture.ftrace_dump_at_shutdown= [KNL]
- Dump the ftrace buffer at torture-test shutdown,
- even if there were no errors. This can be a
- very costly operation when many torture tests
- are running concurrently, especially on systems
- with rotating-rust storage.
- torture.verbose_sleep_frequency= [KNL]
- Specifies how many verbose printk()s should be
- emitted between each sleep. The default of zero
- disables verbose-printk() sleeping.
- torture.verbose_sleep_duration= [KNL]
- Duration of each verbose-printk() sleep in jiffies.
- tpm.disable_pcr_integrity= [HW,TPM]
- Do not protect PCR registers from unintended physical
- access, or interposers in the bus by the means of
- having an integrity protected session wrapped around
- TPM2_PCR_Extend command. Consider this in a situation
- where TPM is heavily utilized by IMA, thus protection
- causing a major performance hit, and the space where
- machines are deployed is by other means guarded.
- tpm_suspend_pcr=[HW,TPM]
- Format: integer pcr id
- Specify that at suspend time, the tpm driver
- should extend the specified pcr with zeros,
- as a workaround for some chips which fail to
- flush the last written pcr on TPM_SaveState.
- This will guarantee that all the other pcrs
- are saved.
- tpm_tis.interrupts= [HW,TPM]
- Enable interrupts for the MMIO based physical layer
- for the FIFO interface. By default it is set to false
- (0). For more information about TPM hardware interfaces
- defined by Trusted Computing Group (TCG) see
- https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
- tp_printk [FTRACE]
- Have the tracepoints sent to printk as well as the
- tracing ring buffer. This is useful for early boot up
- where the system hangs or reboots and does not give the
- option for reading the tracing buffer or performing a
- ftrace_dump_on_oops.
- To turn off having tracepoints sent to printk,
- echo 0 > /proc/sys/kernel/tracepoint_printk
- Note, echoing 1 into this file without the
- tp_printk kernel cmdline option has no effect.
- The tp_printk_stop_on_boot (see below) can also be used
- to stop the printing of events to console at
- late_initcall_sync.
- ** CAUTION **
- Having tracepoints sent to printk() and activating high
- frequency tracepoints such as irq or sched, can cause
- the system to live lock.
- tp_printk_stop_on_boot [FTRACE]
- When tp_printk (above) is set, it can cause a lot of noise
- on the console. It may be useful to only include the
- printing of events during boot up, as user space may
- make the system inoperable.
- This command line option will stop the printing of events
- to console at the late_initcall_sync() time frame.
- trace_buf_size=nn[KMG]
- [FTRACE] will set tracing buffer size on each cpu.
- trace_clock= [FTRACE] Set the clock used for tracing events
- at boot up.
- local - Use the per CPU time stamp counter
- (converted into nanoseconds). Fast, but
- depending on the architecture, may not be
- in sync between CPUs.
- global - Event time stamps are synchronize across
- CPUs. May be slower than the local clock,
- but better for some race conditions.
- counter - Simple counting of events (1, 2, ..)
- note, some counts may be skipped due to the
- infrastructure grabbing the clock more than
- once per event.
- uptime - Use jiffies as the time stamp.
- perf - Use the same clock that perf uses.
- mono - Use ktime_get_mono_fast_ns() for time stamps.
- mono_raw - Use ktime_get_raw_fast_ns() for time
- stamps.
- boot - Use ktime_get_boot_fast_ns() for time stamps.
- Architectures may add more clocks. See
- Documentation/trace/ftrace.rst for more details.
- trace_event=[event-list]
- [FTRACE] Set and start specified trace events in order
- to facilitate early boot debugging. The event-list is a
- comma-separated list of trace events to enable. See
- also Documentation/trace/events.rst
- trace_instance=[instance-info]
- [FTRACE] Create a ring buffer instance early in boot up.
- This will be listed in:
- /sys/kernel/tracing/instances
- Events can be enabled at the time the instance is created
- via:
- trace_instance=<name>,<system1>:<event1>,<system2>:<event2>
- Note, the "<system*>:" portion is optional if the event is
- unique.
- trace_instance=foo,sched:sched_switch,irq_handler_entry,initcall
- will enable the "sched_switch" event (note, the "sched:" is optional, and
- the same thing would happen if it was left off). The irq_handler_entry
- event, and all events under the "initcall" system.
- Flags can be added to the instance to modify its behavior when it is
- created. The flags are separated by '^'.
- The available flags are:
- traceoff - Have the tracing instance tracing disabled after it is created.
- traceprintk - Have trace_printk() write into this trace instance
- (note, "printk" and "trace_printk" can also be used)
- trace_instance=foo^traceoff^traceprintk,sched,irq
- The flags must come before the defined events.
- If memory has been reserved (see memmap for x86), the instance
- can use that memory:
- memmap=12M$0x284500000 trace_instance=boot_map@0x284500000:12M
- The above will create a "boot_map" instance that uses the physical
- memory at 0x284500000 that is 12Megs. The per CPU buffers of that
- instance will be split up accordingly.
- Alternatively, the memory can be reserved by the reserve_mem option:
- reserve_mem=12M:4096:trace trace_instance=boot_map@trace
- This will reserve 12 megabytes at boot up with a 4096 byte alignment
- and place the ring buffer in this memory. Note that due to KASLR, the
- memory may not be the same location each time, which will not preserve
- the buffer content.
- Also note that the layout of the ring buffer data may change between
- kernel versions where the validator will fail and reset the ring buffer
- if the layout is not the same as the previous kernel.
- If the ring buffer is used for persistent bootups and has events enabled,
- it is recommend to disable tracing so that events from a previous boot do not
- mix with events of the current boot (unless you are debugging a random crash
- at boot up).
- reserve_mem=12M:4096:trace trace_instance=boot_map^traceoff^traceprintk@trace,sched,irq
- See also Documentation/trace/debugging.rst
- trace_options=[option-list]
- [FTRACE] Enable or disable tracer options at boot.
- The option-list is a comma delimited list of options
- that can be enabled or disabled just as if you were
- to echo the option name into
- /sys/kernel/tracing/trace_options
- For example, to enable stacktrace option (to dump the
- stack trace of each event), add to the command line:
- trace_options=stacktrace
- See also Documentation/trace/ftrace.rst "trace options"
- section.
- trace_trigger=[trigger-list]
- [FTRACE] Add a event trigger on specific events.
- Set a trigger on top of a specific event, with an optional
- filter.
- The format is is "trace_trigger=<event>.<trigger>[ if <filter>],..."
- Where more than one trigger may be specified that are comma deliminated.
- For example:
- trace_trigger="sched_switch.stacktrace if prev_state == 2"
- The above will enable the "stacktrace" trigger on the "sched_switch"
- event but only trigger it if the "prev_state" of the "sched_switch"
- event is "2" (TASK_UNINTERUPTIBLE).
- See also "Event triggers" in Documentation/trace/events.rst
- traceoff_on_warning
- [FTRACE] enable this option to disable tracing when a
- warning is hit. This turns off "tracing_on". Tracing can
- be enabled again by echoing '1' into the "tracing_on"
- file located in /sys/kernel/tracing/
- This option is useful, as it disables the trace before
- the WARNING dump is called, which prevents the trace to
- be filled with content caused by the warning output.
- This option can also be set at run time via the sysctl
- option: kernel/traceoff_on_warning
- transparent_hugepage=
- [KNL]
- Format: [always|madvise|never]
- Can be used to control the default behavior of the system
- with respect to transparent hugepages.
- See Documentation/admin-guide/mm/transhuge.rst
- for more details.
- trusted.source= [KEYS]
- Format: <string>
- This parameter identifies the trust source as a backend
- for trusted keys implementation. Supported trust
- sources:
- - "tpm"
- - "tee"
- - "caam"
- - "dcp"
- If not specified then it defaults to iterating through
- the trust source list starting with TPM and assigns the
- first trust source as a backend which is initialized
- successfully during iteration.
- trusted.rng= [KEYS]
- Format: <string>
- The RNG used to generate key material for trusted keys.
- Can be one of:
- - "kernel"
- - the same value as trusted.source: "tpm" or "tee"
- - "default"
- If not specified, "default" is used. In this case,
- the RNG's choice is left to each individual trust source.
- trusted.dcp_use_otp_key
- This is intended to be used in combination with
- trusted.source=dcp and will select the DCP OTP key
- instead of the DCP UNIQUE key blob encryption.
- trusted.dcp_skip_zk_test
- This is intended to be used in combination with
- trusted.source=dcp and will disable the check if the
- blob key is all zeros. This is helpful for situations where
- having this key zero'ed is acceptable. E.g. in testing
- scenarios.
- tsa= [X86] Control mitigation for Transient Scheduler
- Attacks on AMD CPUs. Search the following in your
- favourite search engine for more details:
- "Technical guidance for mitigating transient scheduler
- attacks".
- off - disable the mitigation
- on - enable the mitigation (default)
- user - mitigate only user/kernel transitions
- vm - mitigate only guest/host transitions
- tsc= Disable clocksource stability checks for TSC.
- Format: <string>
- [x86] reliable: mark tsc clocksource as reliable, this
- disables clocksource verification at runtime, as well
- as the stability checks done at bootup. Used to enable
- high-resolution timer mode on older hardware, and in
- virtualized environment.
- [x86] noirqtime: Do not use TSC to do irq accounting.
- Used to run time disable IRQ_TIME_ACCOUNTING on any
- platforms where RDTSC is slow and this accounting
- can add overhead.
- [x86] unstable: mark the TSC clocksource as unstable, this
- marks the TSC unconditionally unstable at bootup and
- avoids any further wobbles once the TSC watchdog notices.
- [x86] nowatchdog: disable clocksource watchdog. Used
- in situations with strict latency requirements (where
- interruptions from clocksource watchdog are not
- acceptable).
- [x86] recalibrate: force recalibration against a HW timer
- (HPET or PM timer) on systems whose TSC frequency was
- obtained from HW or FW using either an MSR or CPUID(0x15).
- Warn if the difference is more than 500 ppm.
- [x86] watchdog: Use TSC as the watchdog clocksource with
- which to check other HW timers (HPET or PM timer), but
- only on systems where TSC has been deemed trustworthy.
- This will be suppressed by an earlier tsc=nowatchdog and
- can be overridden by a later tsc=nowatchdog. A console
- message will flag any such suppression or overriding.
- tsc_early_khz= [X86,EARLY] Skip early TSC calibration and use the given
- value instead. Useful when the early TSC frequency discovery
- procedure is not reliable, such as on overclocked systems
- with CPUID.16h support and partial CPUID.15h support.
- Format: <unsigned int>
- tsx= [X86] Control Transactional Synchronization
- Extensions (TSX) feature in Intel processors that
- support TSX control.
- This parameter controls the TSX feature. The options are:
- on - Enable TSX on the system. Although there are
- mitigations for all known security vulnerabilities,
- TSX has been known to be an accelerator for
- several previous speculation-related CVEs, and
- so there may be unknown security risks associated
- with leaving it enabled.
- off - Disable TSX on the system. (Note that this
- option takes effect only on newer CPUs which are
- not vulnerable to MDS, i.e., have
- MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1 and which get
- the new IA32_TSX_CTRL MSR through a microcode
- update. This new MSR allows for the reliable
- deactivation of the TSX functionality.)
- auto - Disable TSX if X86_BUG_TAA is present,
- otherwise enable TSX on the system.
- Not specifying this option is equivalent to tsx=off.
- See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
- for more details.
- tsx_async_abort= [X86,INTEL,EARLY] Control mitigation for the TSX Async
- Abort (TAA) vulnerability.
- Similar to Micro-architectural Data Sampling (MDS)
- certain CPUs that support Transactional
- Synchronization Extensions (TSX) are vulnerable to an
- exploit against CPU internal buffers which can forward
- information to a disclosure gadget under certain
- conditions.
- In vulnerable processors, the speculatively forwarded
- data can be used in a cache side channel attack, to
- access data to which the attacker does not have direct
- access.
- This parameter controls the TAA mitigation. The
- options are:
- full - Enable TAA mitigation on vulnerable CPUs
- if TSX is enabled.
- full,nosmt - Enable TAA mitigation and disable SMT on
- vulnerable CPUs. If TSX is disabled, SMT
- is not disabled because CPU is not
- vulnerable to cross-thread TAA attacks.
- off - Unconditionally disable TAA mitigation
- On MDS-affected machines, tsx_async_abort=off can be
- prevented by an active MDS mitigation as both vulnerabilities
- are mitigated with the same mechanism so in order to disable
- this mitigation, you need to specify mds=off too.
- Not specifying this option is equivalent to
- tsx_async_abort=full. On CPUs which are MDS affected
- and deploy MDS mitigation, TAA mitigation is not
- required and doesn't provide any additional
- mitigation.
- For details see:
- Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
- turbografx.map[2|3]= [HW,JOY]
- TurboGraFX parallel port interface
- Format:
- <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
- See also Documentation/input/devices/joystick-parport.rst
- udbg-immortal [PPC] When debugging early kernel crashes that
- happen after console_init() and before a proper
- console driver takes over, this boot options might
- help "seeing" what's going on.
- uhash_entries= [KNL,NET]
- Set number of hash buckets for UDP/UDP-Lite connections
- uhci-hcd.ignore_oc=
- [USB] Ignore overcurrent events (default N).
- Some badly-designed motherboards generate lots of
- bogus events, for ports that aren't wired to
- anything. Set this parameter to avoid log spamming.
- Note that genuine overcurrent events won't be
- reported either.
- unknown_nmi_panic
- [X86] Cause panic on unknown NMI.
- unwind_debug [X86-64,EARLY]
- Enable unwinder debug output. This can be
- useful for debugging certain unwinder error
- conditions, including corrupt stacks and
- bad/missing unwinder metadata.
- usbcore.authorized_default=
- [USB] Default USB device authorization:
- (default -1 = authorized (same as 1),
- 0 = not authorized, 1 = authorized, 2 = authorized
- if device connected to internal port)
- usbcore.autosuspend=
- [USB] The autosuspend time delay (in seconds) used
- for newly-detected USB devices (default 2). This
- is the time required before an idle device will be
- autosuspended. Devices for which the delay is set
- to a negative value won't be autosuspended at all.
- usbcore.usbfs_snoop=
- [USB] Set to log all usbfs traffic (default 0 = off).
- usbcore.usbfs_snoop_max=
- [USB] Maximum number of bytes to snoop in each URB
- (default = 65536).
- usbcore.blinkenlights=
- [USB] Set to cycle leds on hubs (default 0 = off).
- usbcore.old_scheme_first=
- [USB] Start with the old device initialization
- scheme (default 0 = off).
- usbcore.usbfs_memory_mb=
- [USB] Memory limit (in MB) for buffers allocated by
- usbfs (default = 16, 0 = max = 2047).
- usbcore.use_both_schemes=
- [USB] Try the other device initialization scheme
- if the first one fails (default 1 = enabled).
- usbcore.initial_descriptor_timeout=
- [USB] Specifies timeout for the initial 64-byte
- USB_REQ_GET_DESCRIPTOR request in milliseconds
- (default 5000 = 5.0 seconds).
- usbcore.nousb [USB] Disable the USB subsystem
- usbcore.quirks=
- [USB] A list of quirk entries to augment the built-in
- usb core quirk list. List entries are separated by
- commas. Each entry has the form
- VendorID:ProductID:Flags. The IDs are 4-digit hex
- numbers and Flags is a set of letters. Each letter
- will change the built-in quirk; setting it if it is
- clear and clearing it if it is set. The letters have
- the following meanings:
- a = USB_QUIRK_STRING_FETCH_255 (string
- descriptors must not be fetched using
- a 255-byte read);
- b = USB_QUIRK_RESET_RESUME (device can't resume
- correctly so reset it instead);
- c = USB_QUIRK_NO_SET_INTF (device can't handle
- Set-Interface requests);
- d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't
- handle its Configuration or Interface
- strings);
- e = USB_QUIRK_RESET (device can't be reset
- (e.g morph devices), don't use reset);
- f = USB_QUIRK_HONOR_BNUMINTERFACES (device has
- more interface descriptions than the
- bNumInterfaces count, and can't handle
- talking to these interfaces);
- g = USB_QUIRK_DELAY_INIT (device needs a pause
- during initialization, after we read
- the device descriptor);
- h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For
- high speed and super speed interrupt
- endpoints, the USB 2.0 and USB 3.0 spec
- require the interval in microframes (1
- microframe = 125 microseconds) to be
- calculated as interval = 2 ^
- (bInterval-1).
- Devices with this quirk report their
- bInterval as the result of this
- calculation instead of the exponent
- variable used in the calculation);
- i = USB_QUIRK_DEVICE_QUALIFIER (device can't
- handle device_qualifier descriptor
- requests);
- j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device
- generates spurious wakeup, ignore
- remote wakeup capability);
- k = USB_QUIRK_NO_LPM (device can't handle Link
- Power Management);
- l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL
- (Device reports its bInterval as linear
- frames instead of the USB 2.0
- calculation);
- m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs
- to be disconnected before suspend to
- prevent spurious wakeup);
- n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a
- pause after every control message);
- o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra
- delay after resetting its port);
- p = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT
- (Reduce timeout of the SET_ADDRESS
- request from 5000 ms to 500 ms);
- Example: quirks=0781:5580:bk,0a5c:5834:gij
- usbhid.mousepoll=
- [USBHID] The interval which mice are to be polled at.
- usbhid.jspoll=
- [USBHID] The interval which joysticks are to be polled at.
- usbhid.kbpoll=
- [USBHID] The interval which keyboards are to be polled at.
- usb-storage.delay_use=
- [UMS] The delay in seconds before a new device is
- scanned for Logical Units (default 1).
- Optionally the delay in milliseconds if the value has
- suffix with "ms".
- Example: delay_use=2567ms
- usb-storage.quirks=
- [UMS] A list of quirks entries to supplement or
- override the built-in unusual_devs list. List
- entries are separated by commas. Each entry has
- the form VID:PID:Flags where VID and PID are Vendor
- and Product ID values (4-digit hex numbers) and
- Flags is a set of characters, each corresponding
- to a common usb-storage quirk flag as follows:
- a = SANE_SENSE (collect more than 18 bytes
- of sense data, not on uas);
- b = BAD_SENSE (don't collect more than 18
- bytes of sense data, not on uas);
- c = FIX_CAPACITY (decrease the reported
- device capacity by one sector);
- d = NO_READ_DISC_INFO (don't use
- READ_DISC_INFO command, not on uas);
- e = NO_READ_CAPACITY_16 (don't use
- READ_CAPACITY_16 command);
- f = NO_REPORT_OPCODES (don't use report opcodes
- command, uas only);
- g = MAX_SECTORS_240 (don't transfer more than
- 240 sectors at a time, uas only);
- h = CAPACITY_HEURISTICS (decrease the
- reported device capacity by one
- sector if the number is odd);
- i = IGNORE_DEVICE (don't bind to this
- device);
- j = NO_REPORT_LUNS (don't use report luns
- command, uas only);
- k = NO_SAME (do not use WRITE_SAME, uas only)
- l = NOT_LOCKABLE (don't try to lock and
- unlock ejectable media, not on uas);
- m = MAX_SECTORS_64 (don't transfer more
- than 64 sectors = 32 KB at a time,
- not on uas);
- n = INITIAL_READ10 (force a retry of the
- initial READ(10) command, not on uas);
- o = CAPACITY_OK (accept the capacity
- reported by the device, not on uas);
- p = WRITE_CACHE (the device cache is ON
- by default, not on uas);
- r = IGNORE_RESIDUE (the device reports
- bogus residue values, not on uas);
- s = SINGLE_LUN (the device has only one
- Logical Unit);
- t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
- commands, uas only);
- u = IGNORE_UAS (don't bind to the uas driver);
- w = NO_WP_DETECT (don't test whether the
- medium is write-protected).
- y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
- even if the device claims no cache,
- not on uas)
- Example: quirks=0419:aaf5:rl,0421:0433:rc
- user_debug= [KNL,ARM]
- Format: <int>
- See arch/arm/Kconfig.debug help text.
- 1 - undefined instruction events
- 2 - system calls
- 4 - invalid data aborts
- 8 - SIGSEGV faults
- 16 - SIGBUS faults
- Example: user_debug=31
- userpte=
- [X86,EARLY] Flags controlling user PTE allocations.
- nohigh = do not allocate PTE pages in
- HIGHMEM regardless of setting
- of CONFIG_HIGHPTE.
- vdso= [X86,SH,SPARC]
- On X86_32, this is an alias for vdso32=. Otherwise:
- vdso=1: enable VDSO (the default)
- vdso=0: disable VDSO mapping
- vdso32= [X86] Control the 32-bit vDSO
- vdso32=1: enable 32-bit VDSO
- vdso32=0 or vdso32=2: disable 32-bit VDSO
- See the help text for CONFIG_COMPAT_VDSO for more
- details. If CONFIG_COMPAT_VDSO is set, the default is
- vdso32=0; otherwise, the default is vdso32=1.
- For compatibility with older kernels, vdso32=2 is an
- alias for vdso32=0.
- Try vdso32=0 if you encounter an error that says:
- dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
- video= [FB,EARLY] Frame buffer configuration
- See Documentation/fb/modedb.rst.
- video.brightness_switch_enabled= [ACPI]
- Format: [0|1]
- If set to 1, on receiving an ACPI notify event
- generated by hotkey, video driver will adjust brightness
- level and then send out the event to user space through
- the allocated input device. If set to 0, video driver
- will only send out the event without touching backlight
- brightness level.
- default: 1
- virtio_mmio.device=
- [VMMIO] Memory mapped virtio (platform) device.
- <size>@<baseaddr>:<irq>[:<id>]
- where:
- <size> := size (can use standard suffixes
- like K, M and G)
- <baseaddr> := physical base address
- <irq> := interrupt number (as passed to
- request_irq())
- <id> := (optional) platform device id
- example:
- virtio_mmio.device=1K@0x100b0000:48:7
- Can be used multiple times for multiple devices.
- vga= [BOOT,X86-32] Select a particular video mode
- See Documentation/arch/x86/boot.rst and
- Documentation/admin-guide/svga.rst.
- Use vga=ask for menu.
- This is actually a boot loader parameter; the value is
- passed to the kernel using a special protocol.
- vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y.
- May slow down system boot speed, especially when
- enabled on systems with a large amount of memory.
- All options are enabled by default, and this
- interface is meant to allow for selectively
- enabling or disabling specific virtual memory
- debugging features.
- Available options are:
- P Enable page structure init time poisoning
- - Disable all of the above options
- vmalloc=nn[KMG] [KNL,BOOT,EARLY] Forces the vmalloc area to have an
- exact size of <nn>. This can be used to increase
- the minimum size (128MB on x86, arm32 platforms).
- It can also be used to decrease the size and leave more room
- for directly mapped kernel RAM. Note that this parameter does
- not exist on many other platforms (including arm64, alpha,
- loongarch, arc, csky, hexagon, microblaze, mips, nios2, openrisc,
- parisc, m64k, powerpc, riscv, sh, um, xtensa, s390, sparc).
- vmcp_cma=nn[MG] [KNL,S390,EARLY]
- Sets the memory size reserved for contiguous memory
- allocations for the vmcp device driver.
- vmhalt= [KNL,S390] Perform z/VM CP command after system halt.
- Format: <command>
- vmpanic= [KNL,S390] Perform z/VM CP command after kernel panic.
- Format: <command>
- vmpoff= [KNL,S390] Perform z/VM CP command after power off.
- Format: <command>
- vmscape= [X86] Controls mitigation for VMscape attacks.
- VMscape attacks can leak information from a userspace
- hypervisor to a guest via speculative side-channels.
- off - disable the mitigation
- ibpb - use Indirect Branch Prediction Barrier
- (IBPB) mitigation (default)
- force - force vulnerability detection even on
- unaffected processors
- vsyscall= [X86-64,EARLY]
- Controls the behavior of vsyscalls (i.e. calls to
- fixed addresses of 0xffffffffff600x00 from legacy
- code). Most statically-linked binaries and older
- versions of glibc use these calls. Because these
- functions are at fixed addresses, they make nice
- targets for exploits that can control RIP.
- emulate Vsyscalls turn into traps and are emulated
- reasonably safely. The vsyscall page is
- readable.
- xonly [default] Vsyscalls turn into traps and are
- emulated reasonably safely. The vsyscall
- page is not readable.
- none Vsyscalls don't work at all. This makes
- them quite hard to use for exploits but
- might break your system.
- vt.color= [VT] Default text color.
- Format: 0xYX, X = foreground, Y = background.
- Default: 0x07 = light gray on black.
- vt.cur_default= [VT] Default cursor shape.
- Format: 0xCCBBAA, where AA, BB, and CC are the same as
- the parameters of the <Esc>[?A;B;Cc escape sequence;
- see VGA-softcursor.txt. Default: 2 = underline.
- vt.default_blu= [VT]
- Format: <blue0>,<blue1>,<blue2>,...,<blue15>
- Change the default blue palette of the console.
- This is a 16-member array composed of values
- ranging from 0-255.
- vt.default_grn= [VT]
- Format: <green0>,<green1>,<green2>,...,<green15>
- Change the default green palette of the console.
- This is a 16-member array composed of values
- ranging from 0-255.
- vt.default_red= [VT]
- Format: <red0>,<red1>,<red2>,...,<red15>
- Change the default red palette of the console.
- This is a 16-member array composed of values
- ranging from 0-255.
- vt.default_utf8=
- [VT]
- Format=<0|1>
- Set system-wide default UTF-8 mode for all tty's.
- Default is 1, i.e. UTF-8 mode is enabled for all
- newly opened terminals.
- vt.global_cursor_default=
- [VT]
- Format=<-1|0|1>
- Set system-wide default for whether a cursor
- is shown on new VTs. Default is -1,
- i.e. cursors will be created by default unless
- overridden by individual drivers. 0 will hide
- cursors, 1 will display them.
- vt.italic= [VT] Default color for italic text; 0-15.
- Default: 2 = green.
- vt.underline= [VT] Default color for underlined text; 0-15.
- Default: 3 = cyan.
- watchdog timers [HW,WDT] For information on watchdog timers,
- see Documentation/watchdog/watchdog-parameters.rst
- or other driver-specific files in the
- Documentation/watchdog/ directory.
- watchdog_thresh=
- [KNL]
- Set the hard lockup detector stall duration
- threshold in seconds. The soft lockup detector
- threshold is set to twice the value. A value of 0
- disables both lockup detectors. Default is 10
- seconds.
- workqueue.unbound_cpus=
- [KNL,SMP] Specify to constrain one or some CPUs
- to use in unbound workqueues.
- Format: <cpu-list>
- By default, all online CPUs are available for
- unbound workqueues.
- workqueue.watchdog_thresh=
- If CONFIG_WQ_WATCHDOG is configured, workqueue can
- warn stall conditions and dump internal state to
- help debugging. 0 disables workqueue stall
- detection; otherwise, it's the stall threshold
- duration in seconds. The default value is 30 and
- it can be updated at runtime by writing to the
- corresponding sysfs file.
- workqueue.panic_on_stall=<uint>
- Panic when workqueue stall is detected by
- CONFIG_WQ_WATCHDOG. It sets the number times of the
- stall to trigger panic.
- The default is 0, which disables the panic on stall.
- workqueue.cpu_intensive_thresh_us=
- Per-cpu work items which run for longer than this
- threshold are automatically considered CPU intensive
- and excluded from concurrency management to prevent
- them from noticeably delaying other per-cpu work
- items. Default is 10000 (10ms).
- If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel
- will report the work functions which violate this
- threshold repeatedly. They are likely good
- candidates for using WQ_UNBOUND workqueues instead.
- workqueue.cpu_intensive_warning_thresh=<uint>
- If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel
- will report the work functions which violate the
- intensive_threshold_us repeatedly. In order to prevent
- spurious warnings, start printing only after a work
- function has violated this threshold number of times.
- The default is 4 times. 0 disables the warning.
- workqueue.power_efficient
- Per-cpu workqueues are generally preferred because
- they show better performance thanks to cache
- locality; unfortunately, per-cpu workqueues tend to
- be more power hungry than unbound workqueues.
- Enabling this makes the per-cpu workqueues which
- were observed to contribute significantly to power
- consumption unbound, leading to measurably lower
- power usage at the cost of small performance
- overhead.
- The default value of this parameter is determined by
- the config option CONFIG_WQ_POWER_EFFICIENT_DEFAULT.
- workqueue.default_affinity_scope=
- Select the default affinity scope to use for unbound
- workqueues. Can be one of "cpu", "smt", "cache",
- "numa" and "system". Default is "cache". For more
- information, see the Affinity Scopes section in
- Documentation/core-api/workqueue.rst.
- This can be changed after boot by writing to the
- matching /sys/module/workqueue/parameters file. All
- workqueues with the "default" affinity scope will be
- updated accordingly.
- workqueue.debug_force_rr_cpu
- Workqueue used to implicitly guarantee that work
- items queued without explicit CPU specified are put
- on the local CPU. This guarantee is no longer true
- and while local CPU is still preferred work items
- may be put on foreign CPUs. This debug option
- forces round-robin CPU selection to flush out
- usages which depend on the now broken guarantee.
- When enabled, memory and cache locality will be
- impacted.
- writecombine= [LOONGARCH,EARLY] Control the MAT (Memory Access
- Type) of ioremap_wc().
- on - Enable writecombine, use WUC for ioremap_wc()
- off - Disable writecombine, use SUC for ioremap_wc()
- x2apic_phys [X86-64,APIC,EARLY] Use x2apic physical mode instead of
- default x2apic cluster mode on platforms
- supporting x2apic.
- xen_512gb_limit [KNL,X86-64,XEN]
- Restricts the kernel running paravirtualized under Xen
- to use only up to 512 GB of RAM. The reason to do so is
- crash analysis tools and Xen tools for doing domain
- save/restore/migration must be enabled to handle larger
- domains.
- xen_emul_unplug= [HW,X86,XEN,EARLY]
- Unplug Xen emulated devices
- Format: [unplug0,][unplug1]
- ide-disks -- unplug primary master IDE devices
- aux-ide-disks -- unplug non-primary-master IDE devices
- nics -- unplug network devices
- all -- unplug all emulated devices (NICs and IDE disks)
- unnecessary -- unplugging emulated devices is
- unnecessary even if the host did not respond to
- the unplug protocol
- never -- do not unplug even if version check succeeds
- xen_legacy_crash [X86,XEN,EARLY]
- Crash from Xen panic notifier, without executing late
- panic() code such as dumping handler.
- xen_mc_debug [X86,XEN,EARLY]
- Enable multicall debugging when running as a Xen PV guest.
- Enabling this feature will reduce performance a little
- bit, so it should only be enabled for obtaining extended
- debug data in case of multicall errors.
- xen_msr_safe= [X86,XEN,EARLY]
- Format: <bool>
- Select whether to always use non-faulting (safe) MSR
- access functions when running as Xen PV guest. The
- default value is controlled by CONFIG_XEN_PV_MSR_SAFE.
- xen_nopv [X86]
- Disables the PV optimizations forcing the HVM guest to
- run as generic HVM guest with no PV drivers.
- This option is obsoleted by the "nopv" option, which
- has equivalent effect for XEN platform.
- xen_no_vector_callback
- [KNL,X86,XEN,EARLY] Disable the vector callback for Xen
- event channel interrupts.
- xen_scrub_pages= [XEN]
- Boolean option to control scrubbing pages before giving them back
- to Xen, for use by other domains. Can be also changed at runtime
- with /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
- Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT.
- xen_timer_slop= [X86-64,XEN,EARLY]
- Set the timer slop (in nanoseconds) for the virtual Xen
- timers (default is 100000). This adjusts the minimum
- delta of virtualized Xen timers, where lower values
- improve timer resolution at the expense of processing
- more timer interrupts.
- xen.balloon_boot_timeout= [XEN]
- The time (in seconds) to wait before giving up to boot
- in case initial ballooning fails to free enough memory.
- Applies only when running as HVM or PVH guest and
- started with less memory configured than allowed at
- max. Default is 180.
- xen.event_eoi_delay= [XEN]
- How long to delay EOI handling in case of event
- storms (jiffies). Default is 10.
- xen.event_loop_timeout= [XEN]
- After which time (jiffies) the event handling loop
- should start to delay EOI handling. Default is 2.
- xen.fifo_events= [XEN]
- Boolean parameter to disable using fifo event handling
- even if available. Normally fifo event handling is
- preferred over the 2-level event handling, as it is
- fairer and the number of possible event channels is
- much higher. Default is on (use fifo events).
- xirc2ps_cs= [NET,PCMCIA]
- Format:
- <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
- xive= [PPC]
- By default on POWER9 and above, the kernel will
- natively use the XIVE interrupt controller. This option
- allows the fallback firmware mode to be used:
- off Fallback to firmware control of XIVE interrupt
- controller on both pseries and powernv
- platforms. Only useful on POWER9 and above.
- xive.store-eoi=off [PPC]
- By default on POWER10 and above, the kernel will use
- stores for EOI handling when the XIVE interrupt mode
- is active. This option allows the XIVE driver to use
- loads instead, as on POWER9.
- xhci-hcd.quirks [USB,KNL]
- A hex value specifying bitmask with supplemental xhci
- host controller quirks. Meaning of each bit can be
- consulted in header drivers/usb/host/xhci.h.
- xmon [PPC,EARLY]
- Format: { early | on | rw | ro | off }
- Controls if xmon debugger is enabled. Default is off.
- Passing only "xmon" is equivalent to "xmon=early".
- early Call xmon as early as possible on boot; xmon
- debugger is called from setup_arch().
- on xmon debugger hooks will be installed so xmon
- is only called on a kernel crash. Default mode,
- i.e. either "ro" or "rw" mode, is controlled
- with CONFIG_XMON_DEFAULT_RO_MODE.
- rw xmon debugger hooks will be installed so xmon
- is called only on a kernel crash, mode is write,
- meaning SPR registers, memory and, other data
- can be written using xmon commands.
- ro same as "rw" option above but SPR registers,
- memory, and other data can't be written using
- xmon commands.
- off xmon is disabled.
|