Relaxed syntax for the processor PBLK length
Hello,
In the original DSDT of my laptop (Acer TravelMate 614) the processor PBLK length is declared to be 5. The legal and only allowed value is 6. This is an error in the DSDT and actually it is 6. Allowing Linux ACPI to read also processor PBLK length of 5 works and permits the processor to have the C-states correctly detected. In turn it allows the processor to get less hot (so this is eventually useful).
I've noticed that some other Acer DSDT also have this length mis-indicated. The attached patch adds some logic to the ACPI to allow a processor PBLK length of 5 when the syntax is relaxed.
Hoping this can be useful,
Eric
drivers/acpi/processor_core.c renamed from drivers/acpi/processor_core.c.orig +10 -3
@@ -492,9 +492,16 @@ acpi_processor_get_info (if (!object.processor.pblk_address)ACPI_DEBUG_PRINT ((ACPI_DB_INFO ,"No PBLK (NULL address)\n" ));else if (object.processor.pblk_length !=6 ) -ACPI_DEBUG_PRINT ((ACPI_DB_ERROR ,"Invalid PBLK length [%d]\n" , - object.processor.pblk_length)); -else { +if (object.processor.pblk_length ==5 && !acpi_strict) { + printk(KERN_INFO PREFIX +"PBLK length is 5 instead of 6, concidering " + "it is good anyway.\n"); + goto PBLK_length_good; + }else +ACPI_DEBUG_PRINT ((ACPI_DB_ERROR ,"Invalid PBLK length [%d]\n" , + object.processor.pblk_length)); +else { +PBLK_length_good: pr->throttling.address = object.processor.pblk_address; pr->throttling.duty_offset = acpi_fadt.duty_offset; pr->throttling.duty_width = acpi_fadt.duty_width;
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 6 lines · Eric Piel
In the original DSDT of my laptop (Acer TravelMate 614) the processor PBLK length is declared to be 5. The legal and only allowed value is
6. This is an error in the DSDT and actually it is 6. Allowing Linux ACPI to read also processor PBLK length of 5 works and permits the processor to have the C-states correctly detected. In turn it allows the processor to get less hot (so this is eventually useful).
Wouldn't it be better to correct this in the DSDT itself?
-- Johan
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Hello.
Eric Piel wrote:
[snip]
drivers/acpi/processor_core.c acpi_processor_get_info ( · line 498
Quoted 13 lines
drivers/acpi/processor_core.c renamed from drivers/acpi/processor_core.c.orig +4
-3@@ -492,9 +492,16 @@ acpi_processor_get_info (if (!object.processor.pblk_address)ACPI_DEBUG_PRINT ((ACPI_DB_INFO ,"No PBLK (NULL address)\n" ));else if (object.processor.pblk_length !=6 ) -ACPI_DEBUG_PRINT ((ACPI_DB_ERROR ,"Invalid PBLK length [%d]\n" , - object.processor.pblk_length)); -else { +if (object.processor.pblk_length ==5 && !acpi_strict) { + printk(KERN_INFO PREFIX +"PBLK length is 5 instead of 6, concidering " + "it is good anyway.\n");
[snip]
Typo: concidering -> considering
Bye, Rich =]
Signature · 11 lines
Richard Dawe [ http://homepages.nildram.co.uk/~phekda/richdawe/ ] "You can't evaluate a man by logic alone." -- McCoy, "I, Mudd", Star Trek ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 9 lines · Eric Piel
Hello,
In the original DSDT of my laptop (Acer TravelMate 614) the processor PBLK length is declared to be 5. The legal and only allowed value is 6. This is an error in the DSDT and actually it is 6. Allowing Linux ACPI to read also processor PBLK length of 5 works and permits the processor to have the C-states correctly detected. In turn it allows the processor to get less hot (so this is eventually useful).
Quoted 4 lines
I've noticed that some other Acer DSDT also have this length mis-indicated. The attached patch adds some logic to the ACPI to allow a processor PBLK length of 5 when the syntax is relaxed.
You should consider to disable C3 in this case IMHO.
Thanks,
Signature · 11 lines
Bruno Ducrot -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 11 lines · Bruno Ducrot
Quoted 6 lines · Eric Piel
Hello,
In the original DSDT of my laptop (Acer TravelMate 614) the processor PBLK length is declared to be 5. The legal and only allowed value is 6. This is an error in the DSDT and actually it is 6. Allowing Linux ACPI to read also processor PBLK length of 5 works and permits the processor to have the C-states correctly detected. In turn it allows the processor to get less hot (so this is eventually useful).
I've noticed that some other Acer DSDT also have this length mis-indicated. The attached patch adds some logic to the ACPI to allow a processor PBLK length of 5 when the syntax is relaxed.
You should consider to disable C3 in this case IMHO.
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
Eric
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 3 lines · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
I'm not alone to think this.
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?
Signature · 11 lines
Bruno Ducrot -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 9 lines · Bruno Ducrot
Quoted 1 line · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
Quoted 5 lines
I'm not alone to think this.
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?
Actually in the DSDT the C2 seems really deactivated (latency is set to the maximum, something like 999 ms) while C3 has a declared latency that seems realistic. Additionally, in the C3 state, the computer works perfectly.
Is there anyway in Windows to check if it uses a particular C state?
Eric
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A length other than 6 used to disable PBLK may also indicate that C states are implemented using _CST methods instead of the Processor structure. At least that's how it is on Asus M6N series, PBLK length is set to 7, and there are some other clues in the FADT latency settings to indicate that the BIOS writers didn't want this info used.
-Herman
Quoted 9 lines · Bruno Ducrot
Quoted 1 line · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
Quoted 6 lines
I'm not alone to think this.
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 9 lines · Bruno Ducrot
Quoted 3 lines · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
Quoted 5 lines
I'm not alone to think this.
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?
IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
See also:
http://marc.theaimsgroup.com/?l=acpi4linux&m=104570606821625&w=2
Dominik
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): 20050131155917.GA4416-X3ehHDuj6sIIGcDfoQAp7BvVK+yQ3ZXh@public.gmane.org
Quoted 5 lines · Dominik Brodowski
IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
See also:
http://marc.theaimsgroup.com/?l=acpi4linux&m=104570606821625&w=2
Hummm, then I guess that my patch is not so welcome :-( Anyway, note that this patch allows a wrong PBLK length only if the syntax is relaxed. If your computer has a broken C2 state you could still force the strict syntax and it would boot.
Eric
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 11 lines · Eric Piel
Quoted 5 lines · Dominik Brodowski
IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
See also:
http://marc.theaimsgroup.com/?l=acpi4linux&m=104570606821625&w=2Hummm, then I guess that my patch is not so welcome :-( Anyway, note that this patch allows a wrong PBLK length only if the syntax is relaxed. If your computer has a broken C2 state you could still force the strict syntax and it would boot.
However, Len's message indicates that I wasn't the only one who complained :-(
Dominik
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): 20050131162628.GA4911-X3ehHDuj6sIIGcDfoQAp7BvVK+yQ3ZXh@public.gmane.org
Quoted 8 lines · Dominik Brodowski
Quoted 7 lines · Eric Piel
Quoted 5 lines · Dominik Brodowski
IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
See also:
http://marc.theaimsgroup.com/?l=acpi4linux&m=104570606821625&w=2
Quoted 7 lines
Quoted 4 lines
Hummm, then I guess that my patch is not so welcome :-( Anyway, note that this patch allows a wrong PBLK length only if the syntax is relaxed. If your computer has a broken C2 state you could still force the strict syntax and it would boot.
However, Len's message indicates that I wasn't the only one who complained :-(
That should state "Andy's" instead of "Len's"... and random lockups are not a nice thing to debug... So I'd prefer a command line or DMI option which allows for C2 on broken syntax.
Dominik
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 10 lines · Dominik Brodowski
Quoted 9 lines · Bruno Ducrot
Quoted 3 lines · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
Quoted 8 lines
Quoted 5 lines
I'm not alone to think this.
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
Does your desktop support throttling?
Signature · 11 lines
Bruno Ducrot -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 13 lines · Bruno Ducrot
Quoted 12 lines · Dominik Brodowski
Quoted 11 lines · Bruno Ducrot
Quoted 3 lines · Eric Piel
Why? Actually this patch is especially designed to allow C3 state to be used on my computer. This works for more than 6 months without any appearent problem, is there anything I'm not aware of?
I thought some BIOS devellopers wanted to use a size for the pblk of 5 just to not allow C3 (which correspond to the sixth io register).
I'm not alone to think this.
Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
Nate: FreeBSD allow only C2 in this case. What do you think about this report?
Do you have an example of some kind of malfunction when enabling C3?IIRC my desktop has a pblk of 5, and enabling _C2_ causes random lockups.
Does your desktop support throttling?
brodo@mondschein ~ $ cat /proc/acpi/processor/CPU0/throttling <not supported>
:)
Dominik
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl