4

My Dell laptop is experiencing the old problem of the power adapter failing to be recognized by the computer. I know for a fact it is just a break in the data cable in the line, because if I position it just right, the cable is recognized and the computer stops throttling the CPU to 20%. Is there any way that this can be disabled, so that I don't have the fiddle with my power cord every time I plug the computer in?

  • What does disabling the data line detection have to do with your CPU throttling? – Ramhound Dec 27 '16 at 18:07
  • @Ramhound: wild guess, but probably "on battery" power setting? Not sure why the OP is so quick to blame a data channel though, faulty Power connections on the motherboard are pretty common. – Yorik Dec 27 '16 at 18:14
  • I did have a similar problem not long ago, and the OP's diagnosis turned out to be correct in my case. The only real option I had was to buy a new compatible Dell adapter. – Jeff Zeitlin Dec 27 '16 at 18:47
  • 1
    @Ramhound Dell computers have a data line in the power brick that tells the laptop what the rating on the power adapter is. Run a quick google search and you can see what I mean. I was wondering if anyone knew how to disable the throttling feature. – user173724 Dec 27 '16 at 21:41
  • Possible duplicate of Workaround for Dell "Power supply not recognised" issue – user Oct 3 '18 at 3:48
9

I've done some investigation into this and found that there's probably no good way to prevent recent Dell laptops from throttling the CPU when it doesn't detect an OEM AC adapter (or one with a broken data pin.)

Disabling SpeedStep or "additional sleep modes" or messing with the power profiles in the BIOS makes no difference. The "Intel Extreme Tuning" utility doesn't seem to support these motherboards as all overclocking options are locked out, but when a non-OEM charger is connected up it reports that CPU thermal throttling is engaged, and CPU-Z shows the FSB multiplier down to 5x and the core voltage at 0.6 volts.

My guess is that perhaps the BIOS is designed to send false motherboard temperature readings to the CPU when a non-OEM adapter is detected, causing it to throttle. It seems Dell was very serious about locking you in to OEM adapters when they designed this system.

Edit: I found a utility that will allow you to disable the unknown adapter throttling, under Windows at least (I don't know yet if the utility will work under Linux, or if there is something similar.) ThrottleStop has a checkbox called "BD PROCHOT" which causes the CPU core voltage and multiplier to reset to normal when disabled. Apparently this is a "2 way signal path to the CPU. It allows other components in a laptop like the motherboard or GPU to send a signal to the CPU which tricks the CPU into thinking it is too hot", confirming that the way this "feature" is implemented by the BIOS is through sending this signal to the CPU when an unknown AC adapter is detected.

  • 1
    Would you mind confirming we should be "unchecking" BD-PRODCHOT to fix Dell's crazy CPU slowing on non-OEM powerpacks? It seemed to be ticked when opening TechPowerUp. – sradforth Sep 10 '18 at 8:46
  • 1
    @sradforth Hi, I don't have a Dell laptop anymore so unfortunately I don't recall exactly how ThrottleStop operates. But you can find which toggle setting it is easily enough via running the CPU-Z utility for Windows simultaneously; if the processor is throttled it will be obvious from the real-time processor clock speed reported in the main page, it will be stuck at something like 400MHz no matter what you do. When set "correctly" the clock reported will jump up to its nominal rate in response to user activity when not idling, as expected – Bitrex Sep 11 '18 at 4:13
  • Can't upvote this enough! I can confirm, I unticked BD PROCHOT in Throttlestop and I could immediately see in task manager my CPU jumping back up to normal levels after watching it flatline at 30% for the recorded time. So annoying. Thanks again. – DeVil Nov 8 '18 at 21:27
1

Here's an OS-independent program you can compile with a C compiler/GCC (so long as it has an implementation of asprintf available) and set to run automatically at system startup which should disable the throttling on these Intel-based laptops, I've used this successfully on a Dell Inspiron 5558 laptop running Xubuntu with root privilege for the program, with "msrtools" installed and "modprobe msr" in the startup file prior to program execution, to allow reading and writing the MSR-registers from the user side (other OS may require different commands for "const char* cmd" to read/write to processor register location 0x1FC and will likely require root/privileged user access for the executable whatever form that may take)

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#define BUFSIZE (64)

int get_msr_value(uint64_t* reg_value) {
  const char* cmd = "rdmsr -u 0x1FC";
  char cmd_buf[BUFSIZE];

  FILE* fp;

  if ((fp = popen(cmd, "r")) == NULL) {
    printf("Error opening pipe!\n");
    return -1;
  }

  cmd_buf[strcspn(fgets(cmd_buf, BUFSIZE, fp), "\n")] = 0;
  *reg_value = atoi(cmd_buf);

  if (pclose(fp)) {
    printf("Command not found or exited with error status\n");
    return -1;
  }

  return 0;
}

int main(void) {
  const char* cmd = "wrmsr -a 0x1FC";
  char* concat_cmd;
  int ret;
  uint64_t* reg_value = &(uint64_t){0};

  if ((ret = get_msr_value(reg_value))) {
    return ret;
  }

  printf("Old register value: %lu\n", *reg_value);

  *reg_value = *reg_value & 0xFFFFFFFE;  // clear bit 0

  printf("New register value: %lu\n", *reg_value);

  if (asprintf(&concat_cmd, "%s %i", cmd, *reg_value) == -1)
    return -1;

  printf("Executing: %s\n", concat_cmd);

  system(concat_cmd);
  free(concat_cmd);

  return 0;
}
-1

'Intel Dynamic platform and thermal framework' is the program that limits your cpu from clocking in normal speed.
Uninstalling Intel Dynamic platform and thermal framework should fix the problem.

  • welcome to superuser:- do you have any reference links to go with this answer? Please take a few minutes to read How to Answer or Help center, again welcome to superuser. – mic84 Aug 13 '18 at 2:11
  • The throttling isn't Windows-specific it happens when running Linux as well. – Bitrex Sep 11 '18 at 4:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.