5 ms·
Very cool! So it looks like they built upon this project that tries to install Android on iPhones. https://projectsandcastle.org/status https://projectsandcast
by Jonnax 6y ago
Very cool!
So it looks like they built upon this project that tries to install Android on iPhones.
https://projectsandcastle.org/status https://projectsandcastle.org/status
They mention:
" Apparently they struggled to get Android to run because A10 mandates 16k page sizes"
Is that swap space? I assumed these devices didn't use swap.
- auscompgeek 6y agohttps://en.wikipedia.org/wiki/Page_(computer_memory) https://en.wikipedia.org/wiki/Page_(computer_memory)
- Jonnax 6y agoThanks! So I'm guessing the issue might be that Android mandates 4kb page sizes whilst the A10 CPU has a minimum of 16kb. Whilst Ubuntu and other standard distros don't care?
- spijdar 6y agoA lot of software breaks when you're not running 4kb pages. I run a POWER9 desktop, and the default page size is 64kb. A lot of ... interesting problems manifest. Some filesystems like Btrfs and XFS (iirc) have elements that are page size dependent, and can only be opened on systems with the same page size as the one that made them. Some stuff like Wine (and windows in general AFAIK) assumes 4k "alignment" and doesn't like it when it differs) Of course, on P9 you can just change the page size to 4k and be done with it. Apple appears to have only implemented 16KB pages and nothing else, presumably to minimize silicon cost/maximize performance (?)
- gpderetta 6y ago> Apple appears to have only implemented 16KB pages and nothing else, presumably to minimize silicon cost/maximize performance I think it is because, due to quirks of the interaction of virtual address resolutions with cache addressing, it allows Apple to use a larger L1 cache.
- volta87 6y ago> A lot of software breaks when you're not running 4kb pages. The page size on windows is 64kb as well so portable software already needs to deal with supporting 4kB and 64kB pages.
- hrydgard 6y agoNo the page size on Windows is 4kb, however some things like file mapping do require 64kb alignment, due to ancient compatibility concerns with DEC Alpha.
- my123 6y agoDepends on the architecture. Windows on Itanium runs with 8KB pages for example, but that's the exception that confirms the rule.
- gtirloni 6y agoThat's interesting. Would mind sharing what machine is that (p9)?
- lmz 6y agoOne of these maybe? https://www.raptorcs.com/content/base/products.html https://www.raptorcs.com/content/base/products.html
- spijdar 6y agoIndeed, I've got a Blackbird board in a micro-ATX tower as my main bedroom computer. Got it a couple years back to replace the bulky secondhand rackmounts I'd been using as build hosts/hypervisors/fileservers etc. I appreciate the open platform and documentation behind it -- the OpenPOWER people publish a lot of detailed technical docs, and all the source code is available, with everything down to the FPGAs controlling power-up easily modifiable, without having to reverse-engineer all the bits like cough other platforms. It's just a shame it started off expensive and has gotten even more so the past couple of years. I suppose it's just what happens when you're producing such complex boards at such a tiny scale, and for such a niche audience.
- tyingq 6y ago"Android mandates 4kb page sizes" I think the language they used is misleading. It's more likely Android has introduced some bugs from assuming page sizes are always 4kb. "Whilst Ubuntu and other standard distros don't care?" Many of the various different architectures Linux runs on have page sizes that aren't 4kb. It's typically defined in a constant called "PAGE_SHIFT" in the arch/<ARCH>/include/asm/page.h file for the architecture. For example, PAGE_SHIFT is 13 for OpenRisc: https://github.com/torvalds/linux/blob/fcadab740480e0e0e9fa9bd272acd409884d431a/arch/openrisc/include/asm/page.h#L21 https://github.com/torvalds/linux/blob/fcadab740480e0e0e9fa9... A quick way to convert that to the page size: $ echo "2^13" | bc 8192
- pantalaimon 6y ago> Is that swap space? I assumed these devices didn't use swap. That would have surprised me, and indeed they write [0] > After a cheerful pre-boot 'Hello, world!' hand-coded in start-up code assembly, we ran into the first one: it turned out that the processor cores don't merely support 16kB pages, but they actually require them. The Linux kernel, however, took this in stride, and as soon as we switched the page size configuration option, it was happy to run. [0] https://projectsandcastle.org/history https://projectsandcastle.org/history
- quietbritishjim 6y agoThat quotation doesn't mention swap (AKA the page file), only pages in general. Virtual memory is always divided into pages. Each of those individual pages can be backed by physical memory, the page file, or indeed other files (e.g. for memory-mapped I/O).
- deleted 6y ago[deleted]