mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
cpu-data.py: Filter out apic current logical processor
Commit 10b5e789c5 attempts to filter out the logical processor id in the generated data to remove noise and irrelevant changes in the output. cpuid-leaf 0x0B may have more than two sub-leaves though. Filter out logical processor id from all sub-leaves of 0x0B and 0x1F (superset of the information in 0x0B). Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
17e92b4305
commit
1716ec3d36
@ -107,7 +107,10 @@ def gather_cpuid_leaves_kcpuid(output):
|
||||
|
||||
def gather_cpuid_leaves(args):
|
||||
def mask(regs, eax_in, ecx_in, eax_mask, ebx_mask, ecx_mask, edx_mask):
|
||||
if regs["eax_in"] == eax_in and regs["ecx_in"] == ecx_in:
|
||||
if eax_in != regs["eax_in"]:
|
||||
return
|
||||
if ecx_in != regs["ecx_in"] and ecx_in is not None:
|
||||
return
|
||||
regs["eax"] &= eax_mask
|
||||
regs["ebx"] &= ebx_mask
|
||||
regs["ecx"] &= ecx_mask
|
||||
@ -132,8 +135,8 @@ def gather_cpuid_leaves(args):
|
||||
for regs in reglist:
|
||||
# local apic id. Pretend to always run on logical processor #0.
|
||||
mask(regs, 0x01, 0x00, 0xffffffff, 0x00ffffff, 0xffffffff, 0xffffffff)
|
||||
mask(regs, 0x0b, 0x00, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffff00)
|
||||
mask(regs, 0x0b, 0x01, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffff00)
|
||||
mask(regs, 0x0b, None, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000)
|
||||
mask(regs, 0x1f, None, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000)
|
||||
|
||||
yield regs
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user