I apologize if this thread is in the wrong section, but I cannot post in the development section as I do not have 10 posts.
I'm currently using Clockworkmod with the stock 4.2.2 ROM and franco's kernel r92. I was reading the changelog and saw that in r29, he mentions that only one core is activated when touching the screen unless the second touch is more than 100px away. When using the Kernel Updater app's monitor, I see that both my cores are always activated and current clockspeed is 384 MHz. In settings, I have it set to scale cores as necessary.
Is two cores running when not touching the screen (and with no other apps running) expected behavior and a change in a later build, or is something going on here that I need to address?
Thanks!
ihakim said:
I apologize if this thread is in the wrong section, but I cannot post in the development section as I do not have 10 posts.
I'm currently using Clockworkmod with the stock 4.2.2 ROM and franco's kernel r92. I was reading the changelog and saw that in r29, he mentions that only one core is activated when touching the screen unless the second touch is more than 100px away. When using the Kernel Updater app's monitor, I see that both my cores are always activated and current clockspeed is 384 MHz. In settings, I have it set to scale cores as necessary.
Is two cores running when not touching the screen (and with no other apps running) expected behavior and a change in a later build, or is something going on here that I need to address?
Thanks!
Click to expand...
Click to collapse
Current kernel is 2 cores online with hotplugging for the other two. It has been several releases since it has been one core with two online for swipe.
ihakim said:
I apologize if this thread is in the wrong section, but I cannot post in the development section as I do not have 10 posts.
I'm currently using Clockworkmod with the stock 4.2.2 ROM and franco's kernel r92. I was reading the changelog and saw that in r29, he mentions that only one core is activated when touching the screen unless the second touch is more than 100px away. When using the Kernel Updater app's monitor, I see that both my cores are always activated and current clockspeed is 384 MHz. In settings, I have it set to scale cores as necessary.
Is two cores running when not touching the screen (and with no other apps running) expected behavior and a change in a later build, or is something going on here that I need to address?
Thanks!
Click to expand...
Click to collapse
So you looked at a changelog for r29 and are applying it to r92?!?!?
The recent changelogs are the relevant ones. As I understand there were stability and lag issues with single core mode. His kernel now is either in dual core or quad core mode depending on CPU load.
diablos991 said:
So you looked at a changelog for r29 and are applying it to r92?!?!?
The recent changelogs are the relevant ones. As I understand there were stability and lag issues with single core mode. His kernel now is either in dual core or quad core mode depending on CPU load.
Click to expand...
Click to collapse
Not expecting the change log to be the same, but read through the rest of the changes leading up to r92 and didn't see a mention of him changing it back to two cores (maybe I missed it?). Thanks for answering my question!
ihakim said:
Not expecting the change log to be the same, but read through the rest of the changes leading up to r92 and didn't see a mention of him changing it back to two cores (maybe I missed it?). Thanks for answering my question!
Click to expand...
Click to collapse
Franco is constantly releasing new kernels through his app and he has some of the best kernels out there but they are true nightlies meaning they experimental I find matrix and trinity are the best for performance
Related
I have moved from CM7 to Hombase 5.4, and found that setcpu no longer seems to do anything. on CM7 it worked as i had hoped, underclocking the phone when i was doing low intensity stuff like texting, and pushing it up to full power for videos etc. now it does nothing but tell me core temps, which are always high as its always running at 1Ghz.
Can anyone explain how to get it back to underclocking?
Many Thanks
Try a different kernel.
Sent from my CM860
ishamm said:
I have moved from CM7 to Hombase 5.4, and found that setcpu no longer seems to do anything. on CM7 it worked as i had hoped, underclocking the phone when i was doing low intensity stuff like texting, and pushing it up to full power for videos etc. now it does nothing but tell me core temps, which are always high as its always running at 1Ghz.
Can anyone explain how to get it back to underclocking?
Many Thanks
Click to expand...
Click to collapse
This is a known issue with the OC faux kernel. I was running into the same problem with his enhanced stock kernel after using webtop. After reflashing the enhanced stock 0.2.0 it would still get stuck at max 1Ghz after using webtop, but a reboot would get the underclocking working again.
I only tried the webtop hack to see if I could get it working. I haven't gone back into it at all so I don't know if this is something that will reoccur. Although I will say that with my day to day use I have not run into any clocking issues since.
Thanks, is there a page somewhere which details which kernels do what and which would work with my rom?
Sent from my MB860 using xda premium
ishamm said:
Thanks, is there a page somewhere which details which kernels do what and which would work with my rom?
Sent from my MB860 using xda premium
Click to expand...
Click to collapse
This is the page for faux's kernels. As far as details, start reading and searching through that thread as well as the threads for any ROMS you are using. 99% of the time people will either have the same problem (and possible fix), the other 1% of the time they will identify a bug (i.e. maxed out CPU).
Keep in mind faux does have different kernels for Froyo, GB, and CM7.
For some reason even if I move the slider from 1300my to 1000, when I touch the screen with at least 3 fingers for a few seconds it pegs out at 1300. I read our cpu's are daisy chained so to speak
so the 2nd core kicks in when needed. I tried cpu tuner and it gives the option to powersave and only use one core or if you choose performance it will allow Both cores. Just might be setcpu isn't designed fully for our dual core setup.
thanks for the link to kernels, but i cant find one for HomBase, or a Kernel only download on the homebase thread. i have the Version2, which has some blur, but only the 1.0Ghz clock kernel. where could i get the 1.3GHz download by itself, to see if that might help, as its the one CM7 had iirc
Thanks
ishamm said:
thanks for the link to kernels, but i cant find one for HomBase, or a Kernel only download on the homebase thread. i have the Version2, which has some blur, but only the 1.0Ghz clock kernel. where could i get the 1.3GHz download by itself, to see if that might help, as its the one CM7 had iirc
Thanks
Click to expand...
Click to collapse
Get the 1.3 from the faux thread that I linked to. They're in the very first post...
CM7 is the only ROM that has its own custom faux kernel. For all other ROMS just match the kernel to the build the ROM is based off of (Froyo or GB). If you're using V.2 of Homebase then use the GB one.
Update: Also, there are other kernels out there. I was only using faux's as an example since you were using CM7 and Homebase.
thanks, ive now got the 1.3Ghz kernel installed successfuly, but it still seems like setcpu will not underclock. i dont know if its normal, but the "Scaling" option is greyed out, and i cant get access to the Advanced tab. is there something im doing wrong in setcpu itself?
thanks again
ishamm said:
thanks, ive now got the 1.3Ghz kernel installed successfuly, but it still seems like setcpu will not underclock. i dont know if its normal, but the "Scaling" option is greyed out, and i cant get access to the Advanced tab. is there something im doing wrong in setcpu itself?
thanks again
Click to expand...
Click to collapse
Lack of underclocking is a known issue with the latest OC kernel. I'm unclear whether it's actually a bug with the kernel or with setCPU not supporting dual core devices. But yeah, there's a problem with it right now. I'm on the stock enhanced, and other than the webtop issue I mentioned above, it works fine.
Scaling/advanced are not available, this is something that is determined by the kernel you are using not the app.
ok so if i understand you right i would be best off using the stock enhanced kernel (for now), as it will underclock fine?
ishamm said:
ok so if i understand you right i would be best off using the stock enhanced kernel (for now), as it will underclock fine?
Click to expand...
Click to collapse
It's working perfectly for me, except after webtop use (which I don't normally use).
I'm still having the same issues regardless of weather I choose power save or performance it will not underclock, and those are the only governors I get the option of :s
Sent from my MB860 using xda premium
Hello,
I've noticed that mkernel ([email protected] 7) takes a little bit longer to switch more cores online (some times the CPU can stay at 100 for 1_2 sec) and that kind of problem never happened on stock kernel so is there any way to change hot-plug settings to switch on more cores faster ?( at lower load ) please note that I'm already on interactive covernor
Thanks in advance.
Jim Omar said:
Hello,
I've noticed that mkernel ([email protected] 7) takes a little bit longer to switch more cores online (some times the CPU can stay at 100 for 1_2 sec) and that kind of problem never happened on stock kernel so is there any way to change hot-plug settings to switch on more cores faster ?( at lower load ) please note that I'm already on interactive covernor
Thanks in advance.
Click to expand...
Click to collapse
Why create a separate thread in a random place rather than asking in his thread?
khaytsus said:
Why create a separate thread in a random place rather than asking in his thread?
Click to expand...
Click to collapse
Because I can't I have less than 10 posts............
Jim Omar said:
Because I can't I have less than 10 posts............
Click to expand...
Click to collapse
That is not really a legitimate reason. There is a reason for the post requirement.
The hot plug configuration is set to what the kernel dev believe is optiomal (battery/performance) if by looking in the thread you notice you are the only one withnp that opinion, it would be wise to assume it will not change for 1 user and perhaps you would be better finding a kernel that suits you instead of requesting a change for you.
MatAuc12 said:
That is not really a legitimate reason. There is a reason for the post requirement.
I'm new to xda so where should I post ?
The hot plug configuration is set to what the kernel dev believe is optiomal (battery/performance) if by looking in the thread you notice you are the only one withnp that opinion, it would be wise to assume it will not change for 1 user and perhaps you would be better finding a kernel that suits you instead of requesting a change for you.
Click to expand...
Click to collapse
I'm not requesting a change don't get me wrong I just want to know how to change that (like changing some values in text file located somewhere in the kernel ). Plus the kernel is very very good and I don't want to change it.
Jim Omar said:
I'm not requesting a change don't get me wrong I just want to know how to change that (like changing some values in text file located somewhere in the kernel ). Plus the kernel is very very good and I don't want to change it.
Click to expand...
Click to collapse
Oh hey I think I might be helpful here.
Honestly I don't know what to tell you. The hotplug up2gn delay (the time tegra autohotplug will wait to see if load goes down before switching on another G core) has been increased by .01 seconds from stock in alpha 30. From 140ms (stock) to 150ms (a30).
How are you watching your CPU to make your "stuck at 100%" for one to two second assessment?
Are you sure you're using the latest alpha?
Strange as no one else seems to have this issue.
(Side note - why do people post questions... literally with [Q] in the title... in general instead of q/a?)
Metallice said:
Oh hey I think I might be helpful here.
Honestly I don't know what to tell you. The hotplug up2gn delay (the time tegra autohotplug will wait to see if load goes down before switching on another G core) has been increased by .01 seconds from stock in alpha 30. From 140ms (stock) to 150ms (a30).
How are you watching your CPU to make your "stuck at 100%" for one to two second assessment?
Are you sure you're using the latest alpha?
Strange as no one else seems to have this issue.
(Side note - why do people post questions... literally with [Q] in the title... in general instead of q/a?)
Click to expand...
Click to collapse
First thanks for your kernel and your support
I use resource monitor mini and I didn't noticed this issue on stock kernel as the CPU usage always below 75%.
Yes a30
Maybe they just don't monitor their CPUs usage .
I think because q question (when I don't know the answer)
And q/a (when I ask a question and I know the answer)
Just my opinion.
I don't know weather this is a bug in M-Kernel a38, but occasionally it keeps freezing:
CPU: 1.6 GHz - Performance
GPU: 468 MHz - Unknown Governor
Possible, but you should post this in the M-kernel thread, you could get your answer there. Weather is nice here
Derp, spelling.
Well of course it's going to freeze! You've overclocked it to 1.6 GHz. Not all devices are going to be stable at that frequency. You may be able to improve it by tweaking the voltages a bit.
And I would NOT use the performance governor for purposes other than testing, and especially not permanently. On m-kernel, it sets all four cores to max frequency no matter what. That's a great way to have horrible battery life and a hot device, with excessive processor wear. I don't really see why you would even need to use it.
Start by changing governor to touchdemand, and if that doesn't help, try adjusting voltages.
Sent from my Nexus 7 using Tapatalk HD
How do I adjust the voltages?
Boncey said:
How do I adjust the voltages?
Click to expand...
Click to collapse
Read the OP of m-kernel and all of your questions will be answered.
Sent from my Nexus 7 using Tapatalk HD
I use trinity kernel and can scale to 1.7ghz and 700mhz GPU.
Sent from my Nexus 7 using xda app-developers app
blmvxer said:
I use trinity kernel and can scale to 1.7ghz and 700mhz GPU.
Click to expand...
Click to collapse
That observation only provides info about what your individual device is capable of; it provides no information at all about what clock rates another device will begin to fault at.
The fact that the EDP code in the stock kernel downclocks from 1.3 to 1.2 GHz when more than one of the G-cluster cores comes online is evidence that Nvidia observed some small fraction of Tegra30 devices that can barely operate safely with a single core running at 1.3 GHz. Otherwise, what would the point of that EDP code be - to willfully make their devices less competitive against other SoCs?
Running the performance rate governor for anything but short benchmarks is like trying to purposely shorten the operating lifetime of both the mobo and the battery.
I tried M-Kernel last week, and it constantly crashed when it was doing something.
Such as browsing Chrome/Youtube/Gmail.
M-Kernel just doesn't seem stable atm. Not only the crashes but also reboots with M-Kernel.
Before anyone says, I didn't overclock/undervolt anything, so its the kernel in general.
Went back to Faux kernel and not had a single crash.
Wilks3y said:
I tried M-Kernel last week, and it constantly crashed when it was doing something.
Such as browsing Chrome/Youtube/Gmail.
M-Kernel just doesn't seem stable atm. Not only the crashes but also reboots with M-Kernel.
Before anyone says, I didn't overclock/undervolt anything, so its the kernel in general.
Went back to Faux kernel and not had a single crash.
Click to expand...
Click to collapse
The problem was not m-kernel. It's m-kernel in your configuration. I'm in that thread daily and flash every rev including the alphas. Are there are no reports of problems like this. The act of flashing Faux is probably what fixed your problem. Did you flash a ROM/GAPPS? All those apps you reported crashing are Google apps.
Note 2 - Nexus 7 - Charge - Player 5.0 - Fascinate
<><><><><><><><><><>
Read twice, flash once
Is there a way to have individual core Control clock speeds and governor if possible I'd prefer an app for obvious reasons (easier) I'm on cm10.1 5/9 nightlies
Sent from my Nexus 7 using Tapatalk 2
Some of the rate governors (not all of them) let you select the maximum number of cores allowed to be online. Depends on the kernel, but in principle you can use Trickster Mod. While clocking on the Tegra 3 is quite flexible, I believe it is not possible to have separate G cores operating simultaneously with different clock rates.
That's lame the subject came up because I have it working on my Atrix HD AT&T but I think I'll try another kernel
Sent from my Nexus 7 using Tapatalk HD
Franzferdinan51 said:
That's lame the subject came up because I have it working on my Atrix HD AT&T but I think I'll try another kernel
Sent from my Nexus 7 using Tapatalk HD
Click to expand...
Click to collapse
What's the point of it?
bftb0 said:
What's the point of it?
Click to expand...
Click to collapse
Extra battery but more speed with a kind of stepping stone per say look at it like this using my dual core 1.5 ghz atrix hd as an example
Sleep one core and you run single core with lots of lag
But with this method you can under clock core 0 1ghz to and change the government to interactive use the second core as something to the n7 companion core take it way down farther let's say 600mhz with on demand or possibly conservative governor. That way the second core would come on in times of lag for a small push to end lag spikes and like I said works on my atrix quite well
Sent from my Nexus 7 using Tapatalk HD
I think I would expect what you are describing to exhibit strange (pathological) behavior unless all of the rate governors are re-coded to collect their heuristics partitioned by processor thread affinity.
Does this also mean the 2nd processor is never off-lined? (They can drain a lot of juice even when underclocked due to static power dissipation issues, so it makes me wonder if the power savings is real)
Is the kernel development work for that device (Atrix HD) described anywhere by the implementer(s)?
A couple I couldn't point you to a definitive answer as I'm not a dev though it's defiantly someplace here on the forums even a kernel to look at
Sent from my Nexus 7 using Tapatalk HD
Franzferdinan51 said:
A couple I couldn't point you to a definitive answer as I'm not a dev though it's defiantly someplace here on the forums even a kernel to look at
Click to expand...
Click to collapse
Are you talking about that script-ware by smokin1337? If so, it seems to (try to) work by forcing the second core to be on-line at all times, and then changing rate governors on a per cpu basis, not in the kernel but by continuously writing to each cpu entry in sysfs.
I peeked over in the Atrix HD forum and it seems it doesn't even have any working custom kernels yet...
http://forum.xda-developers.com/showthread.php?p=40253686
That's the only kernel to my knowledge
Sent from my Nexus 7 using Tapatalk HD
@Franzferdinan51
Maybe you could throw me a bone - what exactly is it that you are using on your Atrix HD that does this? (Is it baked in to somebody's ROM, or a separate flashable patch)?
I *did* go searching over in the Atrix HD forum rather extensively.
Downloaded Codex01's "CM10.1PreformanceEnhancements-3.0.1" and looked in there - this doesn't do what you say.
Downloaded tcf38012's popcorn kernel and unpacked it and poked around - it also doesn't do what you say (lots of other tweaks tho).
Found a mention of something similar in posts by skeevydude. Downloaded smokin1337's "CPU Editor" for snapdragon - it was mentioned in passing in the Atrix CM 10.1 thread.
Am I just looking at the wrong things?
Anyway, everything that I've found so far that looks close to what you are describing writes control information to stuff in /sys/devices/system/cpu{/cpu0|/cpu1}/*
For what it is worth, that same (sysfs) stuff does exist in various N7 kernels - for instance, per-cpu entries for min/max frequencies and rate governors in /sys/devices/system/cpu/cpu{0|1|2|3}/cpufreq/.
So, maybe what I said first was wrong. Maybe the right answer should have been "kinda - maybe - sorta". I would have to understand the PLL schemes that different kernels use a lot better than I do to be definitive.
But I am still a bit skeptical that it actually produces the result that it claims - saving battery life by forcing two cores to be online at all times... without also affecting performance. And the part about two independent control loops affecting each other in pathological ways remains open as well (threads running on the other core with a different rate governor affect the measurement of the recent system load averages used by the second rate governor - and vice versa).
It would be useful to have a decent and repeatable way to benchmark interactivity - the first-person reports of "this is really smooth" or "lags badly" are always completely subjective and non-repeatable, so it is hard to know who to really believe when it comes to reports about this stuff.
cheers
Finally after someone pm'd me I looked back into GPU Overclocking.
New thread created issues with old thread OP permissions (people seem to be asking the same questions over and over again all information will be kept in OP & DO READ THE THREAD, repetitive questions will now be ignored)
Benefits:
Smoother UI
Handle 2d & 3d core GPU intensive applications & games
Currently only 2D core has been overclocked working on 3D core OC
2D-core original value - 192mhz OC to 245mhz DONE achieved 25% performance boost grp_2d_clk outputs 245760000hz
3D-core original value - 245mhz OC to 300+mhz WIP hoping to achieve 40-50% performance boost
2D-core OC only Download: Coming soon...
Download Links for other devices coming soon...
Works for all HTC Sense/Cm9/Cm10 kernels (Just ask a kernel developer for your device to implement the source code)
Note: Don't have internet on PC so providing 3 main files that need replaced for 2D-core OC to work
Download link to source code: http://d-h.st/wbH
3D-CORE OC TESTS Download: Coming soon...
Do check under sys/kernel/debug/htc_clock/clks/ look for file with all clocks & look for GRP_clks (Graphics clock)
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.
So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.
(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)
(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)
Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.
Main thread is in Desire HD Android Development section: http://forum.xda-developers.com/show....php?t=2368497
Thanks for your efforts.
I'm trying to follow the link to your Desire thread and it seems it's broken.
Nevermind, found it: LINK
I think a kernel dev from the droid incredible 2 has a 3d gpu overclock in a kernel but I didn't use it in mine because I worry about the heat output being overclocked combined with that.
Sent from my ADR6400L using Tapatalk 2
disconnecktie said:
I think a kernel dev from the droid incredible 2 has a 3d gpu overclock in a kernel but I didn't use it in mine because I worry about the heat output being overclocked combined with that.
Sent from my ADR6400L using Tapatalk 2
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=2372291
you must be referring to this...
Someone already showed me the commits
no one has managed gpu overclocking at all on any msm7x30/msm8x55 platform/soc devices
I saw it someone's git when I was building my kernel. I couldn't find useful posts about kernel stuff so I just looked for git accounts that were from similar devices.
Sent from my ADR6400L using Tapatalk 2
Probably Kangaroo Kernel based off of Beast Mode.
Oh ya that's the one. Been a while since i looked.
Sent from my ADR6400L using Tapatalk 2
Shaky156 said:
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.
So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.
(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)
(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)
Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.
Main thread is in Desire HD Android Development section: http://forum.xda-developers.com/show....php?t=2368497
Click to expand...
Click to collapse
I have an Inc2 id be willing to test on if you'd like...
Sent from my Maserati using XDA Premium
Everyone has been modifying the kernel graphics software layer platform data with values that dont make sense and are impossible more above with values that dont exist within thw graphics table anywayx
3d oc is abit more difficult
Devs + testers join IRC will make life easier
Irc freenode #s1gpuoc
I wouldn't recommend replacing those files in any current kernel directly. Since there is no github to see what the actual changes are isolated from the file, it's hard to say if all the changes made are compatible. Some of them were unnecessary, and simply added credits to a line that was unchanged (most likely because it has been updated since the original writing of the files).
https://github.com/StarKissed/stark...mmit/dc381024f122a114b770076e2992cd5097f5c47c <- The specific changes required
twistedumbrella said:
Does this include a sysfs interface to throttle the overclock?
https://github.com/StarKissed/stark...mmit/618b9e076f7b2c0a8f9f0c5733f61d4ef27261c0
Click to expand...
Click to collapse
There isnt any need for a sys fs at the moment due to the way qualcomm have made their msm7x30
Shaky156 said:
There isnt any need for a sys fs at the moment due to the way qualcomm have made their msm7x30
Click to expand...
Click to collapse
Any time values that aren't stock are being forced, it's good to have the option to turn it off but in this case it's only forcing stock values to persist so it doesn't really matter.
Sent from my Galaxy Nexus using Tapatalk 2
Okay after looking @ GPU Overclock for 2 weeks, This is the news on GPU OC for MSM8x55/MSM7x30 socs.
My findings...
2D-core OC from 192mhz to 245mhz successful.
3D-core OC will not happen without me obtaining the datasheet (which is proprietary)
The clocks are protected, via Ownership/Permissions, and maybe an RCU/MPU
No Overclocking the CPU does NOT Overclock the GPU, thats the worst thing I've heard in my life lol.
The lowest the GPU can hit is 192mhz or lpxo freq
Bus is not overclockable, it always is 192mhz
EBI_2D_clk will and has always been 0mhz
Modifying kgsl platform data and/or the graphics table with random values or even calculated values from correct pll freqs will NOT OC the gpu
it's ashame the GPU clocks are protected.
IF anyone is looking to continuing this project and is on the right track you're more than welcome to get in contact with me, especially if you have the msm7x30 datasheet.
The QSD8x50 soc is more open than this soc, so I'm doing a few tests on the HD2