Why are all devices based on MSM8916 built on 32 bit ARMV7

Hi there. I've spent the last few years porting Linux to Aarch64, and I can say that there is a big real benefit. Most notably is the 64k PAGESIZE of for the MMU. A basic fact of computing is that shuttling memory pages in/out of memory cells, down to L1, and finally into a CPU register.... that all together might cost about 4000 picojoules, but then computing that register with your average RICS instruction... but for the sake of example add/subtract... would be about 20 picojoules!!! So that said there is no extra cost in shuttling an 8K page or a 64k page, the same approximate energy is spent. The point here is you spend less energy accessing memory. That is a huge benefit for mobile devices, or enterprise servers. It's roughly comparable to enabling JUMBO FRAME on your network card. (note: these are exaggerated picojoule numbers for the sake of example)

Also to address your comments about memory size, well I'll do my best. Energizing those memory cells costs a lot of energy. There is very real pressure to keep RAM as low as possible. Also, relatedly reducing the size of memory actually increase the energy cost. So reducing the fabrication process might allow more memory to be squeezed in a space, it cause a rise in energy use, and heat dispersion. The reasons are very technical and get into field effect physics, but the basic answer is the common power feeding an array of transistors has to increase with shorter distance. So the bottom line is 2 or 3 GiB is plenty enough for a mobile device due to practical problems with battery.

So all that said, the actual reason these phones are not enabling aarch64 mode, and instead going with aarch32 mode.... because they don't know how, or they are too scared to try it in production. However, I know from first hand exposure to pretty much all of these silicon vendors that they have 64 bit kernels, because I use them myself. (Source: I'm an embedded Linux engineer who has been working full time the past few years on aarch64)

/r/cyanogenmod Thread Parent