Passa ô cuntinutu

XSAVEOPT

Rifirimentu d'archititturaFeex

XSAVEOPT è un mèmmiru uttimizzatu dâ famigghia di sarvataggiu dû statu estesu x86. Li sò uttimizzazzioni pirmissi si bàsanu supra lu cuntrattu archititturali di gistioni dû statu e nunni fannu n'istruzzioni ginèrica pi cupiari buffer.

Chiḍḍu ca t'hà sapiri

XSAVEOPT è un mèmmiru uttimizzatu dâ famigghia di sarvataggiu dû statu estesu x86. Li sò uttimizzazzioni pirmissi si bàsanu supra lu cuntrattu archititturali di gistioni dû statu e nunni fannu n'istruzzioni ginèrica pi cupiari buffer.

Comu funziona

Cunfruntatu cu un sarvataggiu di statu standard, XSAVEOPT pò evitàri di scrìviri arcuni cumpunenti a sicunna dû tracciamentu di nizzializzazzioni e mudìfica. Lu software havi a sèquiri li règuli difiniti pi la nizzializzazzioni e lu riprìstinu di l'immàggini. Un byte nun tuccatu ntâ distinazzioni nun è nicissariamenti na prova ca un cumpunenti fu sarvatu 'n modu sbagghiatu.

Unni e' ùtili

Un percorsu di gistioni dû cuntestu di l'OS pò arridùciri lu tràfficu di mimoria inùtili quannu lu statu dî riggistri estesi nun canciau. L'appricazzioni avìssiru a fidàrisi di l'implimintazzioni dû sistema upirativu a menu ca nun hannu un requisitu ducumintatu di gistioni dû statu a vasciu liveddu.

Comu cuntrollari lu supportu e l'abbilitazzioni

Cu XSAVE e la currispunnenti gamma di fogghi dispunìbbili, CPUID.0DH.01H:EAX bit 0 enumera XSAVEOPT. Cuntrullati li cumpunenti di statu abbilitati e li requisiti dû buffer 'n modu siparatu, e siguiti l'accuppiamentu sarvataggiu/riprìstinu stabbilitu di l'architittura.

Li funzioni di gistioni dû statu sunnu principarmenti na rispunzabbilitati di l'OS e dû runtime. Buffer, màscari, dimenzioni dî cumpunenti, alliniamentu e règuli di riprìstinu hannu a curdàrisi cu l'architittura e la mudalitati d'assecuzzioni. Sarvari sulu nu suttanzemi pò danniggiari lu còdici ca usa àutri stati abbilitati.

Zoccu la funziunalitati nun stabbilisci

XSAVEOPT nun è XSAVEC o XSAVES e nun cumporta ogni furmatu di sarvataggiu dû statu succissivu. Riutilizzari un buffer senza rispittari lu cuntrattu di l'immàggini di statu pò prudùciri riprìstini sbagghiati. L'uttimizzazzioni nun assicura migghiuramenti di pristazzioni a liveddu d'appricazzioni.

Cumpatibbilitati e pristazzioni nnâ pràtica

La rilivazzioni dî funzioni a liveddu d'applicazzioni avissi a usari n'interfaccia di runtime mantinuta quannu è pussìbbili. Distingui lu supportu hardware di l'abbilitazzioni di l'OS e, pi funzioni dinàmichi, dî pirmessi dû prucessu. N'etichetta dâ CPU sula nun pò stabbiliri ca na sìquenza arbitraria di sarvataggiu/riprìstinu è curretta.

Na lista di virìfica pràtica

  1. Riggistra lu mudellu esattu dû prucissuri o dâ piattafurma e li virsioni di l'applicazzioni, dû SO e dû runtime cuinvorti. Manteni la formulazzioni di l'erruri o dû requisitu riali.
  2. Cuntrolla lu rifirimentu dû prudutturi pi ddu mudellu esattu, poi spizziona la capacitati effittiva e lu statu abbilitatu nta l'ambienti unni lu prugramma gira.
  3. Cunfrunta ogni requisitu dû binariu o dû backend silizziunatu. Na funziunalitati cû nomu sìmili, un pseudònimu o n'etichetta ticnulòggica ginèrica nun abbàstanu.
  4. Cunferma ca l'applicazzioni hà silizziunatu la mplimintazzioni privista. Usa la sò diagnòstica ducumintata e un fallback suppurtatu quannu li requisiti nun sunnu suddisfatti.
  5. Fai un canciamentu suppurtatu a la vota e ripeti lu stissu caricu di travagghiu. Manteni dispunìbbili la cunfigurazzioni urigginali e lu pircorsu di ricùp ситуаazzioni.

Si la funziunalitati e' ndicata ma lu software nun la po usari

Accumenza cû cumpunenti esattu ca fallisci. Un database d'hardware discrivi la capacitati riggistrata; lu sistema upirativu o l'hypervisor ponnu ammustrari n'ambienti effittivu diffirenti. N'erruri di struzzioni illigali addanna puru n'indàggini supra la struzzioni ca fallisci pi daveru e supra la build binaria, picchì la curruzzioni o na struzzioni nun currilata e nun suppurtata ponnu fari un sìntumu sìmili.

Installa la virsioni di l'applicazzioni, dû driver o dû runtime suppurtata pâ piattafurma esatta, e usa la build di basi o di fallback ducumintata dû prudutturi si n'hai bisognu. N'aggiurnamentu dû software nun po criari na struzzioni ca manca nnô prucissuri. Li canciamenti di firmware e di pulìtica di sicurizza avìssiru a sèquiri la prucidura dû prudutturi dû sistema e un pianu di ricùpiru mmeci d'un ricittariu d'uttimizzazzioni ginèricu.

Funti e scanciu di st'esplicazzioni

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: using XSTATE features in user space

Sti rifirimenti stabbilìscinu lu cumpurtamentu architittùnicu e li requisiti dû software. Nun virìficanu di manera ndipinnenti ogni valuri di funziunalitati nta na pàggina d'un mudellu hardware culligatu. Pû supportu dû mudellu, usa li provi dû prudutturi di dda pàggina e cuntrolla la cunfigurazzioni effittiva dû sistema. St'artìculu nun duna un benchmark, na cirtificazzioni o na data di rivisioni ndipinnenti.

Funti e virìfica

Titularità editoriali: Feex. Nudda data di rivisioni nnipinnenti è riggistrata. Comu facemu i ricerchi.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Li Vulumi 1 e 2 discrìvinu li famigghi di struzzioni muntuati e CPUID; lu Vulumi 3 discrivi statu, pagginazzioni, VMX e cuntrolli di prutizzioni. La ducumintazzioni d'architittura nun stabbilisci lu supportu pi un mudellu particulari.
  • Linux kernel: using XSTATE features in user space · Statu vitturiali abbilitatu dû SO, statu dî tile abbilitatu dinamicamenti, requisiti dû signal stack e flussu di pirmissu AMX. Lu cumpurtamentu spicìficu di Linux nun e' na prumissa supra n'àutru SO.

Fu ùtili st'artìculu?

Un sì o un no abbasta. Scegghi un mutivu si voi, o junci na nota curta.

Fu ùtili st'artìculu?