#2211 closed defect (fixed)

CPUInformation: Bug in CPU-Flag detection (TBM)

Reported by: Matcher Owned by: zzz
Priority: major Milestone: 0.9.35
Component: api/general Version: 0.9.34
Keywords: CPUID TMB Cc:
Parent Tickets: Sensitive: no

Description

In
core/java/src/freenet/support/CPUInformation/CPUIDCPUInfo.java
function hasTBM() is calling getECXCPUFlags(), but it should be getExtendedECXCPUFlags(), since ECXCPUFlag bit 21 is x2apic, not tbm.

The correct line (107) should be:

return (CPUID.getExtendedECXCPUFlags() & (1 << 21)) != 0; //Extended ECX Bit 21

Subtickets

Change History (3)

comment:1 Changed 19 months ago by zzz

Component: router/generalapi/general
Milestone: undecided0.9.35
Owner: set to zzz
Status: newaccepted

comment:2 Changed 19 months ago by zzz

This is an AMD-only feature.
Wrong since original checkin for 0.9.26
Verified in AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions 24594—Rev. 3.25—December 2017 pages 573,672

comment:3 Changed 19 months ago by zzz

Resolution: fixed
Status: acceptedclosed

In 351f453df0af116cf6b7b998c528323500f6b7c0 to be 0.9.34-2
Great catch, thank you!

Note: See TracTickets for help on using tickets.