Hi David Bien,
Well, I think you said everything ^^
Jetson Nano is -far- more maker friendly.
Jetson Xavier is paradoxally for Industries but have a very small amount of storage.
I wrote a lot of mails exchange with the person involved on the Tegra Architecture, Vincent Nguyen. And the exchanges was more a deaf dialogue.
I can share the answer I had from the person involved on the Tegra Architecture after I explained all the advantage from SSD/ eMMC boot.
Le 2019-04-16 17:07, Vincent Nguyen a écrit :
I know full well the speed advantage of SSD over emmc.
What I don’t quite get is why you absolutely need to have boot
support at bootloader level.
There are essentially three options:
1/ Plug in SSD through NVMe, bootloader, kernel and filesystem on
eMMC, all applications executables and data on NVMe SSD, only downside
is that OS filesystem speed is limited by eMMC speed, but given that
most IOs will be on NVMe SSD, I don’t think this has a huge impact
(certainly no other customers have complained about it)
2/ Keep bootloader and kernel on eMMC, modify kernel to load
filesystem from external NVMe: theoretically possible (same approach
as booting from NFS for that matter), although I’ve not looked into
it for ages. Since bootloader and kernel are loaded once, gets the
benefit of advanced IO speed for OS filesystem operation, but I
honestly doubt of any significant real world benefit over 1/
3/ what you are requesting, ie putting kernel and filesystem on SSD,
requires bootloader modification: the only advantage you gain over 2/
here is to maintain coherency between kernel and filesystem, but that
point IMO is moot since you also need to maintain coherency between
bootloader and kernel.
Also, what is the rationale of “it is not suitable to use external
SSD over NVMe”, if all your applications executables and data are
precisely on NVMe SSD ? Even if it’s, I quote, “plugged in like
USB”, if it’s faster why would it be a problem ? Do you have a
specific use case in mind that clearly exhibits a performance
limitation linked to 1/ or 2/ ?
Granted OS filesystem operations (libraries loading, etc) would be
slower when using 1/ above than when using 2/ or 3/, but since you can
also set the swap file to an external device (in this case NVMe SSD),
this would be significantly alleviated after first load. On top of
that, most of the IO will be linked to the application itself
(database would reside on NVMe SSD for ex), not the OS itself.
I will escalate the issue internally though, but I will need some hard
data for engineering to actually invest resources into it, so if you
have a clear use case with data that highlights the performance
impact, I would welcome it (you mentioned you implemented it on TX2, I
would assume you have some numbers if there is such a use case ?).