1. A method for increasing energy-efficiency of a data processing system, the method comprising: continuously checking, by a processor executing a user-mode program in the data processing system, a plurality of I/O ports for incoming workload, wherein checking the plurality of I/O ports for the incoming workload comprises: during a predetermined power management cycle, receiving, by the processor, a sample indicating a value of a busy flag (B) at predetermined intervals (T); for a current predetermined interval (T), responsive to a value of the busy flag (B) failing to be equal to a first value, incrementing, by the processor, a count for a number of samples (N); and responsive to a current value of the count for the number of samples (N) being greater than a total number of samples (M), determining, by the processor, whether a current value of a count of samples (U) is less than a low workload threshold (L); responsive to the current value of the count of samples (U) being lower than the low workload threshold (L) for a current operating frequency, decreasing, by the processor, an operating frequency of the processor; and responsive to the current value of the count of samples (U) being higher than a high workload threshold (H), increasing, by the processor, the operating frequency of the processor.