Problem med at indstille processor affinity

Ved nogen, hvordan man indstiller processoraffinitet med AMD 5950x? Jeg prøver på at indstille den til kun at bruge 8 kerner, men jeg får denne fejl i loggen.

2025-06-11T13:09:52 MCEBuddy.AppWrapper.Base → Setting CPU affinity to → -16711936
WARNING> 2025-06-11T13:09:52 MCEBuddy.AppWrapper.Base → Error trying process priority or setting CPU affinity to → -16711936
System.ComponentModel.Win32Exception (0x80004005): The parameter is incorrect
at System.Diagnostics.Process.set_ProcessorAffinity(IntPtr value)
at MCEBuddy.AppWrapper.Base.Run()

Antager du, at du har 16 kerner? Kan du vedhæfte konverteringslogfilen.

Kunne du også tage et skærmbillede af CPU-tilhørsforholdsindstillingssiden i MCEBuddy, så vi kan se, hvilken kerne du forsøger at bruge?

Den har 16 kerner og 32 tråde. Jeg har eksperimenteret med forskellige mønstre, og de fleste viser fejlen.
image

Criminal Minds - S17E05 - Conspiracy vs Theory.mkv-Process TV Shows-2025-06-11T17-39-34.log (1,1 MB)

Prøv at begrænse det til kun en kombination af de første 16 (lad 17-32 være fravalgt) og se, om fejlen forsvinder.

Det ser ud til at virke.

2025-06-12T06:31:14 MCEBuddy.AppWrapper.Base → Indstiller CPU-tilhørsforhold til → 255

Vi prøver at finde ud af, hvad der foregår – om det er et problem med koden, eller om det handler om, hvordan logiske processorer behandles med de nye AMD-processorer.

Kan du prøve følgende: På din Processor Management-side skal du vælge CPU’erne 1 til 17 (alle 16 på første række og den første fra anden række). Kør derefter en konvertering og fortæl mig, hvad du ser i logfilerne. Tak.

Jeg testede lidt ved at tilføje en CPU ad gangen. Dette så jeg:

17 CPU-tilknytning til → 131071
18 CPU-tilknytning til → 262143
19 CPU-tilknytning til → 524287
20 CPU-tilknytning til → 1048575
21 CPU-tilknytning til → 2097151
22 CPU-tilknytning til → 4194303
23 CPU-tilknytning til → 8388607
24 CPU-tilknytning til → 16777215
25 CPU-tilknytning til → 33554431
26 CPU-tilknytning til → 67108863
27 CPU-tilknytning til → 134217727
28 CPU-tilknytning til → 268435455
29 CPU-tilknytning til → 536870911
30 CPU-tilknytning til → 1073741823
31 CPU-tilknytning til → 2147483647
32 var jeg nødt til at fjerne tjek for 1, da den ikke ville lade mig vælge alle, og så fik jeg:
Setting CPU affinity to → -2
WARNING> 2025-06-12T16:18:56 MCEBuddy.AppWrapper.Base → Error trying process priority or setting CPU affinity to → -2

Fantastisk. Det er meget hjælpsomt.

Vi har tjekket tingene her, og koden er som specificeret, men det ser ud til, at Windows har problemer med din 32. logiske kerne. Vi prøver at finde ud af, om det er en fejl i Windows, eller om det er noget med systemkonfigurationen, der forårsager problemet.

Kan du tjekke et par ting:

  1. I Windows Task Manager, viser den alle 32 tråde/logiske processorer?
  2. I dine BIOS-indstillinger, er alle 32 aktiveret?

Vi har en teori, men har brug for din hjælp til at teste noget. Kan du venligst prøve én ting til – det involverer manuel redigering af konfigurationsfilen, så rækkefølgen af trin er vigtig.

  1. Klik på Stop-knappen i MCEBuddy og sørg for, at den er stoppet, før du fortsætter (kun Start-knappen skal være tilgængelig, når motoren er stoppet).
  2. Åbn filen mcebuddy.conf og find linjen CPUAffinity
  3. Skift den til CPUAffinity=-1
  4. Gem filen og luk den
  5. Klik på Start-knappen i MCEBuddy
  6. Klik nu på Tilføj-knappen og start en konvertering (den behøver ikke gennemføres, lad den blot køre et par trin i cirka 20-30 sekunder)

Hvis det er muligt, kan du gentage trinene ovenfor, men med CPUAffinity=-2147483648

Tjek logfilerne og skriv tilbage, hvad du ser i dem.

Ja, den viser 32, og BIOS har alt aktiveret.

Her er resultaterne:

Setting CPU affinity to → -1

2025-06-18T16:56:41 MCEBuddy.AppWrapper.Base → Setting CPU affinity to → -2147483648
WARNING> 2025-06-18T16:56:41 MCEBuddy.AppWrapper.Base → Error trying process priority or setting CPU affinity to → -2147483648
System.ComponentModel.Win32Exception (0x80004005): Parameteren er forkert
at System.Diagnostics.Process.set_ProcessorAffinity(IntPtr value)
at MCEBuddy.AppWrapper.Base.Run()

Tak. Så det ser ud til, at en af to ting sker:

  1. Windows (software-API’erne) har en fejl, der forhindrer MCEBuddy i at aktivere/deaktivere den 32. kerne-tråd
  2. Systemet/boardet/BIOS-konfigurationen har et problem, hvor Windows enten ikke genkender den 32. kerne-tråd eller ikke er i stand til at håndtere den

Det ser ud til at virke for kerne-trådene 1-31.

Kan du se den 32. kerne-tråd i joblisten? Kan du vælge kun den 32. kerne-tråd i joblisten for enhver proces gennem joblisten?

En hurtig test for at finde ud af, hvor problemet kan ligge, i få trin:

  1. Start MCEBuddy GUI (appen) og hold den åben
  2. Åbn en kommandoprompt ved at gå til Kør og starte/tilføje cmd.exe
  3. Skriv i kommandolinjen
    powershell.exe "Get-Process MCEBuddy.GUI | Select-Object ProcessorAffinity"
  4. Det giver som standard processormasken; lad mig vide, hvad den viser
  5. Skriv nu
    powershell.exe "$proc = Get-Process MCEBuddy.GUI; $proc.ProcessorAffinity = 0x80000000"
  6. Dette tvinger MCEBuddy GUI til at blive tildelt den 32. kerne-tråd. Hvis det lykkes, kommer der ingen fejl, og så ved vi, at den 32. kerne-tråd faktisk kan bruges, og at der ikke er noget problem med system/board/BIOS-konfiguration. Hvis du derimod ser en fejl (fortæl mig hvilken), er det sandsynligvis et Windows API-problem.

Ikke sikker på, om det hjælper, men jeg brugte PowerShell til at vise affiniteten og fjernede derefter den 32. proces via Task Manager. Dette viste den:

alle 32:
PS E:\plex> .\get_proc.ps1
Processor Affinity for Notepad: 4294967295

første 31:
PS E:\plex> .\get_proc.ps1
Processor Affinity for Notepad: 2147483647

PS E:\plex>

Det er et meget hjælpsomt script, men jeg går ud fra, at du kører 64-bit Windows, så din test af Notepad blev kørt i 64-bit-tilstand. Problemet her er, at nogle af komponenterne i MCEBuddy kører i 32-bit (WOW64) af kompatibilitetsgrunde, og det er her, problemet ser ud til at stamme fra.

Kan du lave din egen testscript om, men med et 32-bit program i WOW64-tilstand.

Du kan starte en 32-bit Notepad i WOW64 fra %windir%\SysWOW64\notepad.exe

Hvis du kan få de samme resultater, mens du kører i 32-bit WOW64, ville det bekræfte den sandsynlige rodårsag til problemet.

Det lignede, at den version af notepad stadig vises som x64 i joblisten. Jeg brugte mobaxterm, som vises som x86, og den viser de samme værdier:

PS E:\plex> .\get_proc.ps1
Processor Affinity for Notepad: 4294967295
PS E:\plex> .\get_proc.ps1
Processor Affinity for Notepad: 2147483647

Perfekt, tak, det ser ud til at være en fejl med Windows .NET API’erne. Lad os se, om vi kan finde en løsning på det.

Ok, vi har en løsning og en rettelse til opsætningen. Prøv dagens 2.6.6 beta-build. Du skal gå tilbage til indstillingerne, bekræfte din processoropsætning igen og gemme den igen, for at ændringerne træder i kraft.

Med denne build kan du vælge op til 64 logiske kerner/tråde (for 64-bit-systemer og 32 for 32-bit-systemer).

Kan du prøve at vælge den 32. processor (alle processorer eller bare den 32.) og derefter uden den 32. og se, hvordan det går.

Du er meget velkommen til at poste logfilerne her (succeser og fejl), så vi kan sammenligne dem med vores forventede resultater.