| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688 |
- 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.
- 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.
- * [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]
- 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]
- 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
- 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 '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.
- 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>
- 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.
|