You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What is the problem you're trying to solve?.
Running x86_64 applications in a relatively fast manner on Finch. Qemu has a number of bugs and underperforms by quite a bit performance-wise.
Describe the feature you'd like
Rosetta for Linux is already supported by Lima when using the Apple VMM through Virtualization.framework. As such, enable this support for Finch.
Additional context
This feature requires macOS Ventura.
By default, we might want to have a separate VM for x86_64 and arm64 containers. This is because VMs with Rosetta for Linux support enabled come with always on TSO. As that scenario has stronger memory ordering guarantees than what the Arm architecture mandates, the downside of this is not catching a number of concurrency bugs when running locally.
Rosetta for Linux only covers 64-bit x86 applications. It doesn't attempt to cover the 32-bit x86 apps scenario.
The text was updated successfully, but these errors were encountered:
Issue #, if available: Closes#218
*Description of changes:*
Adds support for Lima's Virtualization.framework and Rosetta features,
through the use of new finch.yaml configuration options (`vmType` and
`rosetta`). `vmType` also sets the `mountType` to `virtiofs`, since that
is only available when using Virtualization.framework.
To support this, a few things needed to be changed on our side:
- Disk migration. Although lima-vm/lima#1405
(which adds persistent disk support to `vmType: vz` in Lima) will
auto-convert persistent disks from QCOW2 to RAW when they are attempted
to be used with `vmType: vz`, because of the way our disks are persisted
with symlinks, we also have to do this
- Move some hardcoded lima config from finch.yaml to be programatically
toggled in `pkg/config/lima_config_applier`
- This allows things like the qemu user mode scripts to be installed
only when they are needed. Installing them all the time, and then trying
to use Rosetta as a binformat_misc handler causes conflicts
- This also opens up possibilities of future customization based on
Finch's config values
Currently, because lima-vm/lima#1405 is not
merged yet, this PR references [a specific branch of my own finch-core
repo](https://github.com/pendo324/finch-core/tree/lima-with-vz-extra-disk)
which includes the Lima change already. It also edits the Makefile to do
a build of Lima from the submodule directly, and overwrite the Lima
downloaded from the archive. These changes will be removed once the Lima
change is merged upstream.
*Testing done:*
- unit tests
- e2e tests
- local testing on Intel and Apple Silicon machines
- [x] I've reviewed the guidance in CONTRIBUTING.md
#### License Acceptance
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
---------
Signed-off-by: Justin Alvarez <[email protected]>
What is the problem you're trying to solve?.
Running x86_64 applications in a relatively fast manner on Finch. Qemu has a number of bugs and underperforms by quite a bit performance-wise.
Describe the feature you'd like
Rosetta for Linux is already supported by Lima when using the Apple VMM through Virtualization.framework. As such, enable this support for Finch.
Additional context
This feature requires macOS Ventura.
By default, we might want to have a separate VM for x86_64 and arm64 containers. This is because VMs with Rosetta for Linux support enabled come with always on TSO. As that scenario has stronger memory ordering guarantees than what the Arm architecture mandates, the downside of this is not catching a number of concurrency bugs when running locally.
Rosetta for Linux only covers 64-bit x86 applications. It doesn't attempt to cover the 32-bit x86 apps scenario.
The text was updated successfully, but these errors were encountered: