PDA

View Full Version : C & P state on INTEL CPU


excos
03-15-2011, 08:55 PM
Απο αρκετες δοκιμες που εκανα στο μηχανακι μου το C & P state της cpu δουλευει αρκετα ικανοποιοητικα εαν και παρεμβαινει ο nullcpupowermanager.kext στο applepowermanager.kext.

Αυτο βεβαια το εχω λυση φορτωνοντας τον voodoopowermini.kext και προσθετοντας τον icpu.kext για να δω τα επιπεδα του επεξεργαστη μου σε C & P state οπως και τις θερμοκρασιες που εχει η cpu μου.

Θα ηθελα να γραψεται πως εχετε λυση αυτο στο δικο σας μηχανημα ή εαν δεν σας εχει απασχολησει καθολου ή απο αγνοια οτι υπαρχει κατι τετοιο στην εγκατασταση σας

ggero
03-16-2011, 05:02 PM
Πως το βλέπουμε αυτό ?

excos
03-16-2011, 06:35 PM
Χμ εκει ειναι η μαγκια στην εγκατασταση γιατι εαν δεν παιζουν αυτα τα δυο τοτε ο επεξεργαστης σου δουλευει με μιση ή και λιγοτερη δυναμη.

Κατεβαζεις τον icpu.kext + icpu προγραμμα.


ή

MSR Tools

και βλεπεις ενα παιζουν αυτα.

ggero
03-16-2011, 06:38 PM
θα το δω το βραδυ απο το pc μου και θα ποσταρω

tangon
03-16-2011, 06:40 PM
Φίλε excos δεν καταλαβαίνω απόλυτα αυτά που γράφεις. Παρόλα αυτά σου ανεβάζω τα δικά μου screen shots.

Το μόνο που βλέπω είναι διαφορές στην θερμοκρασία.

excos
03-16-2011, 06:49 PM
Φιλε tangon οταν τρεχεις το προγραμμα στο status θα πρεπει να εχεις αυξομιωση των MHZ απο την cpu σου οπως γραφει και το πινακακι με τις θερμοκρασιες σου.

Εαν δεν εχεις αυξομιωσει τοτε ο επεξεργαστη σου η παιξει στο ποιο δυνατο του σημειο ή στο ποιο χαμηλο σημειο mhz.

Εαν παιζει συνεχεια στο ποιο δυνατο τοτε εχεις αυξηση πολυ της θερμοκρασιας.(θα το καψεις το μηχανημα)

Εαν παιζει στο ποιο χαμηλο τοτε δεν εχεις προβλημα θερμοκρασιας αλλα επεξεργαστικης ικανοτητας (σερνεται).

tangon
03-16-2011, 07:02 PM
ΟΚ. Τώρα αρχίζω να καταλαβαίνω τι εννοείς.

Λοιπόν στο Status της CPU-i οι συχνότητες ανεβοκατεβαίνουν και στις 4CPUs από αυτό που φαίνεται στην screen shot 1998MHz έως τα 2664MHz που είναι η ονομαστική ταχύτητα του επεξεργαστή μου και φυσικά αντίστοιχα οι θερμοκρασίες από 57C - 58C ή 61C-65C ανάλογα τον επεξεργαστή. Μεταβολές έχω και στις άλλες ενδείξεις (multiplier, voltage)

Από αυτά καταλαβαίνω ότι είμαι σε ικανοποιητικά επίπεδα.

excos
03-16-2011, 07:07 PM
Ok μια χαρα ειναι φιλε Tangon.

Αλλα κατεβασε και το MSR Tools για να δεις εαν εχεις και το Speedstep (on) στις cpu σου συμμαντικο σε INTEL CPU.

tangon
03-16-2011, 07:18 PM
Το MSR Tools το έχω αλλά δεν μου τρέχει. Όταν το ανοίγω δεν μου γράφει τίποτε. Υποψιάζομαι ότι "τρέχει" σε 2πύρηνους επεξεργαστές και εγώ έχω τετραπύρηνο.

Εκτός και αν θέλει κάποιο kext όπως συμβαίνει με το πρόγραμμα CPU-i.

Πληροφορίες για τους επεξεργαστές μπορώ να πάρω από το πρόγραμμα EvOToolsX

# Identification
Vendor : GenuineIntel
Brand String : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
Model Number : 23 (Penryn)
Family Code : 6
Extended Model : 1
Extended Family : 0
Stepping ID : 10
Signature : 67194

# Address Bits
Physical Addressing : 36
Virtual Addressing : 48

# Multi-Core Information
Logical Processors (Threads) per Physical Processor : 4
Cores per Physical Package : 4

# Caches
## L1 Instruction Cache
Size : 32K
Line Size : 64B
Sharing : dedicated per processor thread
Sets : 64
Partitions : 1
Associativity : 8

## L1 Data Cache
Size : 32K
Line Size : 64B
Sharing : dedicated per processor thread
Sets : 64
Partitions : 1
Associativity : 8

## L2 Unified Cache
Size : 2M
Line Size : 64B
Sharing : shared between 2 processor threads
Sets : 4096
Partitions : 1
Associativity : 8

# Translation Lookaside Buffers
Instruction TLBs : 8 large, 128 small
Data TLBs : 32 large, 256 small

# Features
ACPI : Thermal Monitor and Software Controlled Clock
APIC : On-Chip APIC Hardware
CLFSH : CLFLUSH Instruction
CMOV : Conditional Move Instruction
CX16 : CMPXCHG16B Instruction
CX8 : CMPXCHG8 Instruction
DE : Debugging Extension
DS : Debug Store
DS-CPL : CPL Qualified Debug Store
DTES64 : 64-Bit Debug Store
EST : Enhanced Intel SpeedStep Technology
FPU : Floating-Point Unit On-Chip
FXSR : FXSAVE and FXSTOR Instructions
HTT : HyperThreading
MCA : Machine-Check Architecture
MCE : Machine-Check Exception
MMX : MMX Technology
MONITOR : MONITOR/MWAIT Instructions
MSR : Model Specific Registers
MTRR : Memory Type Range Registers
PAE : Physical Address Extension
PAT : Page Attribute Table
PBE : Pending Break Enable
PDCM : Perfmon and Debug Capability
PGE : Page Global Enable
PSE : Page Size Extension
PSE-36 : 36-Bit Page Size Extension
SEP : Fast System Call
SS : Self-Snoop
SSE : Streaming SIMD Extensions
SSE2 : Streaming SIMD Extensions 2
SSE3 : Streaming SIMD Extensions 3
SSSE3 : Supplemental Streaming SIMD Extensions 3
SSE4.1 : Streaming SIMD Extensions 4.1
TM : Thermal Monitor
TM2 : Thermal Monitor 2
TSC : Time Stamp Counter
VME : Virtual Mode Extension
VMX : Virtual Machine Extensions
XSAVE : XSAVE/XSTOR States
xTPR : xTPR Update Control

# Extended Features
EM64T : Intel Extended Memory 64 Technology
XD : Execution Disable

excos
03-16-2011, 07:25 PM
Μια χαρα εισαι!!!!!!!
Παιζεις με πειραγμενο dsdt ή δεν το εχεις πειραξει καθολου?

Το hpet το εχεις πειραξει απο το dsdt ή παιζει απο μονο του?

tangon
03-16-2011, 07:43 PM
Το dsdt το έχω πειράξει με την έννοια ότι έχω "διορθώσει" τα errors ή κάποια warnings ώστε να μην μου βγάζει τίποτα στο τσεκάρισμα.

Στο dsdt σίγουρα έχω πειράξει, από ότι θυμάμαι, το Reset CMOS (RTC) και τον ήχο που με είχε παιδέψει πολύ για να τον φέρω στα ίσια του. Για το άλλο που μου γράφει δεν έχω κάνει κάτι αν και δεν ξέρω που επεμβαίνει για να πω την αλήθεια.

excos
03-16-2011, 07:52 PM
Το HPET φορτωνεται στο ACPI και ελενχει θερμοκρασιες speedstep και state c & p των cpu.

Αλλα θα το δεις εαν κανεις boot με -v στην αρχη τοu boot σου γραφει εαν φορτωνει σωστα.

Το δικο σου δεν εχει κανενα προβλημα απο οτι βλεπω παιζει με την μια και ειναι πολυ συμμαντικο.

Αμα δουλευει και το sleep τοτε ολες οι λειτουργιες ειναι σαν να εχεις ενα γνησιο.

Το κακο ειναι οτι καμμια φορα με τα update, αυτο αλλαξει γιατι πηγαινουν και πειραζουν τον kernel και μετα τρεχεις και δεν φτανεις.

Γιαυτο θα πρεπει παντα μετα απο ενα update να βλεπει εαν εχει αλλαξει κατι απο αυτα για να εχεις μια τελεια εγκατασταση.

tangon
03-16-2011, 08:25 PM
Θα κοιτάξω για το HPET αν το φορτώνει στην εκκίνηση.

Όσο για το sleep ότι και αν έχω κάνει δεν το έχω καταφέρει να το φτιάξω. Ενώ μου σβήνει μετά δεν ξανανοίγει με τίποτα εκτός από restart.

Έχω παρατηρήσει ότι όταν σβήνει για sleep δεν λειτουργούν τα usb οπότε δεν μπορώ να το εκκινήσω. Εκεί έχω διαπιστώσει ότι υπάρχει το πρόβλημα.

excos
03-16-2011, 08:37 PM
Chipset ICH7 ενα απο τα προβληματα που εχει ειναι και το sleep.Ενω μπορεις να κανεις εγκατασταση χωρις προβλημα.

Chipset ICH9&10 τρεχει χωρις προβλημα το sleep μιας και το εχει και η μαμα Apple επανω.

Εχεις κανα usb συσκευη επανω στο μηχανημα που κολλα το sleep ?

Εχεις κοιταξει για τα usb fix που υπαρχουν οσο με kexts ή στο DSDT ?

tangon
03-16-2011, 08:55 PM
Πάνω στο πύργο έχω από usb μια webcam και τον εκτυπωτή μόνιμα συνδεδεμένα.

Δεν έχω περάσει usb fix kext αλλά ούτε έχω πειράξει το DSDT γιατί νομίζω ότι από τη στιγμή που τα usb μου δουλεύουν κανονικά, βάζω - βγάζω usb sticks και δίσκους, κανονικές ταχύτητες στην αντιγραφή φαντάζομαι ότι κάποιο παραπάνω kext μπορούσε να τα επηρεάσει.

Πιστεύεις ότι χρειάζεται διερεύνηση και να αρχίσω πειραματισμούς με το fix usb?

excos
03-16-2011, 10:11 PM
Φιλε tangon ο νομος λεει οτι οταν κατι δουλευει καλα δεν το πειραζουμε!

Αλλα επειδη ξεκινησαμε αυτο το σπορ για hack στα μηχανακια μας και εκει ειναι ολη η υποθεση οτι οσο σκαλιζεις μαθαινεις και περισσοτερο.

Αυτο που εχω κανει για να βελτιωσω την εγκατασταση μου στο μηχανακι μου, ειναι οτι εχω ενα εξωτερικο δισκο, που εχω βαλει ακριβως το ιδιο installation, που εχω και στο εσωτερικο μου δισκο, με την διαφορα οτι εκει κανω τα πειραματα μου χωρις να πειραζω την υπαρχων καλη μου εγκατασταση.

Αυτο σαν αποτελεσμα οτι μπορω να φορτωνω και τροποιημενα DSDT χωρις προβλημα για να δω πως παιζουν.

Μερικα απο Fix σε usb ειναι τα παρακατω εαν ενδιαφερεσαι αλλα οτι κανεις κανε το με το συστημα που αναφερω παραπανω μεχρι να δεις τι παιζει στο δικο σου.

native USB EHCI Mac Pro hack

Look for the section EHCI in the DSDT code, Change the section to this code:


Device (EHCI)
{
Name (_ADR, 0x001A0007) /*<-----------------------look for the correct address, ADR, in each DSDT */
OperationRegion (UFCS, PCI_Config, 0x54, 0x04)
Field (UFCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}

Device (HUB2)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}

Device (PRT2)
{
Name (_ADR, 0x02)
}

Device (PRT3)
{
Name (_ADR, 0x03)
}

Device (PRT4)
{
Name (_ADR, 0x04)
}
}

Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
Method (_S3D, 0, NotSerialized)
{
Return (0x03)
}

Method (_S4D, 0, NotSerialized)
{
Return (0x03)
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x07)
{
"AAPL,current-available",
0x05DC,
"AAPL,current-extra",
0x03E8,
"AAPL,current-in-sleep",
0x0BB8,
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

USB UHCI hack 2

This hack adds an id of a Mac to the USB to make it more compatible with OSX.



Device (UHC1)
{
Name (_ADR, 0x001D0000)
Name (UPS1, Package (0x02)
{
0x03,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (UHC2)
{
Name (_ADR, 0x001D0001)
Name (UPS1, Package (0x02)
{
0x04,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x35, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (UHC3)
{
Name (_ADR, 0x001D0002)
Name (UPS1, Package (0x02)
{
0x0C,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x36, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (UHC4)
{
Name (_ADR, 0x001A0000)
Name (UPS1, Package (0x02)
{
0x0E,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x37, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (UHC5)
{
Name (_ADR, 0x001A0001)
Name (UPS1, Package (0x02)
{
0x05,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x38, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (UHC6)
{
Name (_ADR, 0x001A0002)
Name (UPS1, Package (0x02)
{
0x20,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}

If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x39, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (EHC1)
{
Name (_ADR, 0x001D0007)
Name (UPS1, Package (0x02)
{
0x0D,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0x62, 0x02)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URE2, 9
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URE2)
}

If (LEqual (Arg0, One))
{
Store (0x01FF, URE2)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3a, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (EHC2)
{
Name (_ADR, 0x001A0007)
Name (UPS1, Package (0x02)
{
0x0D,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}

OperationRegion (USBR, PCI_Config, 0x62, 0x02)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URE2, 9
}

Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URE2)
}

If (LEqual (Arg0, One))
{
Store (0x01FF, URE2)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3c, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}


USB native driver hack:

Locate your usb devices and add this code to each one, changing the values from device id with the one supplied under the code:


Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0f)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00 //the values below
},
"AAPL,clock-id", // property needed for sleep support
Buffer (One)
{
0x0a
},

"built-in",
Buffer ()
{
0x00
},

"device_type", //not sure it is useful
Buffer (0x05)
{
"EHCI"
},


"AAPL,current-available",
0x04B0,
"AAPL,current-extra",
0x02BC,
"AAPL,current-in-sleep", // to solve a problem with sleep when stick is inserted
0x03E8,

Buffer (0x01)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

DeviceIDs
Intel
USB1 - 0x2830
USB2 - 0x2831
USB3 - 0x2832
USB4 - 0x2834
USB5 - 0x2835
EHC1 - 0x2836
EHC2 - 0x283a
nForce
USB1 - 0x0aa5
USB2 - 0x0aa7
EHC1 - 0x0aa6
EHC2 - 0x0aa9

Αυτα τα λιγα!!!

ggero
03-17-2011, 12:03 AM
Να και τα δικά μου

mozart
03-17-2011, 07:49 AM
εμενα το msr tool δεν εγκαθιστατε.

με ποιον τροπο μπορω να δω αυτα που λες?

excos
03-17-2011, 12:12 PM
Εναλλακτικα για αυτους που το MSR Tools δεν παιζει στο μηχανακι τους, ενα καλο ειναι το cpu x απο netkas μερια που δειχνει εαν τα MHZ της cpu αλλαζουν!

mozart
03-17-2011, 12:52 PM
Εναλλακτικα για αυτους που το msr tools δεν παιζει στο μηχανακι τους, ενα καλο ειναι το cpu x απο netkas μερια που δειχνει εαν τα mhz της cpu αλλαζουν!

οκ το κατεβασα
οι θερμοκρασιες ειναι χαμηλα και παιζει γυρω στο 30%
αμην

tangon
03-17-2011, 08:45 PM
Φιλε tangon ο νομος λεει οτι οταν κατι δουλευει καλα δεν το πειραζουμε!

Αλλα επειδη...

....Μερικα απο Fix σε usb ειναι τα παρακατω εαν ενδιαφερεσαι αλλα οτι κανεις κανε το με το συστημα που αναφερω παραπανω μεχρι να δεις τι παιζει στο δικο σου.

native USB EHCI Mac Pro hack...

Σ' ευχαριστώ φίλε excos για τις πληροφορίες usb. Θα το κοιτάξω μόλις έχω λίγο χρόνο γι' αυτό το μηχάνημα.

Έχω φάει κόλλημα με το καταραμένο laptop του πλαισίου που δεν λέει με τίποτα να πάρει τo OS X

excos
03-17-2011, 09:46 PM
Να σε καλα φιλε tangon.

Οτι χρειαστεις με το laptop εδω ειμαστε.