I get 5 hours battery life on my dual Xeon laptop under Linux.
I will say, I miss 2016-era power controls for Linux. Being able to set a max MHz allowed me to truly control my power and battery usage. Any idea why Linux changed that functionality in future power governers?
Using tlp, setting all settings in Powertop and undervolting with intel-undervolt will get you some seriously crazy battery life. Battery life on my X250 is better under Linux than it is in Windows with these changes.