peterhuene opened PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set on which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene edited PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
fitzgen submitted PR Review.
fitzgen submitted PR Review.
fitzgen created PR Review Comment:
Would be nice to note something like "it is the wasmtime crate's responsibility to ensure that the allocator outlives this instance" or something of the sort.
fitzgen created PR Review Comment:
Why do we have both of these? I would have expected just
instance_allocator(without theOption) which is initialized by default toArc::new(DefaultInstanceAllocator).
fitzgen created PR Review Comment:
It isn't clear to me that implementations will ever do this initialization step differently. Do you expect it to change with instance pooling? If not, then I think we don't need to make
initializepart of the trait.
fitzgen created PR Review Comment:
And if we just had
instance_allocator, then this code would simplify a bit as well.But I feel like I'm missing some kind of context about why we have both (a comment above the field definitions in the
Configstruct would really help readers out here!)
fitzgen created PR Review Comment:
The public version of the trait doesn't have any deallocation hooks? I don't see any mention of this in the RFC either. How is the instance pool supposed to recycle an instance's memory?
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
I do expect there to be some differences with the allocator implementations with respect to table / linear memory initialization.
userfaultfdsupport can lazily initialize the pages, so it might simply take a reference on the initializers for later use, for example.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
I'll add that comment for safety.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
So the instance allocator is really meant for allocating module instances and not for the various "instantiations" Wasmtime does internally for representing host tables, memories, globals, and functions.
The "default" allocator is used exclusively for these internal instantiations as well as for module instantiations when a user does not provide an alternative instance allocator.
I can improve the comments around this to make that distinction clearer, but I'm also open to an alternative implementation.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Agreed. I can comment on why the config is storing both, but I'm definitely open to any suggestions you might have regarding a different approach for handling internal host object instantiations vs. module instantiations.
The end goal being that I don't want a pooling allocator to treat host objects as counting towards any limits placed on the total number of instances supported by the pool.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
The RFC doesn't change the lifetime semantics of module instances, so this trait doesn't need a
deallocatemethod as it is assumed a store owns the returned instance. When the store gets dropped, all associated instances will be deallocated like they are today.This differs from the runtime
InstanceAllocatortrait as there's no concept of store there and handles are what are being allocated and deallocated.
peterhuene edited PR Review Comment.
fitzgen created PR Review Comment:
I feel like I'm missing something or we are talking past each other, sorry: When a store is dropped, doesn't the instance pool need to know that each of the store's instance's memory ranges are available for reuse now?
fitzgen submitted PR Review.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Actually, I'm going to remove this field, along with the
initializeanddeallocmethods onInstanceHandlein favor of just calling on the allocator directly rather than shimming through the handle this way.
peterhuene edited PR Review Comment.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
It will via
InstanceHandle::deallocwhich is currently calling the associated allocator to deallocate the instance. The pool then will know what associated memories and tables to put back on the free list.I'm trying to remove the
allocatorfield ofInstanceHandlethough since I don't like storing this unsafe back pointer to the allocator.
peterhuene edited PR Review Comment.
peterhuene edited PR Review Comment.
fitzgen submitted PR Review.
fitzgen created PR Review Comment:
Okay and that
dealloccall fowards towasmtime_runtime::InstanceAllocator::deallocate, but that doesn't have a corresponding method in the publicwasmtime::InstanceAllocatortrait. Do we expect the instance pool to use the internalwasmtime-runtimeAPIs instead of the publicwasmtimeAPIs? Do we expect any implementations ofInstanceAllocatorother than the default and the instance pool? Do we expect to eventually add adeallocatemethod towasmtime::InstanceAllocatoras well?
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
What I'd like to do is remove the
InstanceAllocatorandDefaultInstanceAllocatortypes from thewasmtimecrate in favor ofConfigtaking aArc<dyn wasmtime_runtime::InstanceAllocator>directly. This would both simply things and help me remove this back pointer fromwasmtime_runtime::Instanceto the allocator that created the instance so that deallocation can be handled directly from the drop implementation ofStore.I would then like to open up the construction of
wasmtime_runtime::Instanceandwasmtime_runtime::InstanceHandlesuch that instance allocators could be implemented in crates other thanwasmtime_runtime.However, given our stance on
wasmtimebeing the crate we offer semantic versioning andwasmtime_runtimebeing an implementation details crate, I don't know if this is feasible to do.
peterhuene edited PR Review Comment.
peterhuene updated PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
This field has now been removed.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
This field has now been removed.
Where instance handles are created for host objects, the default instance allocator is explicitly used with a comment.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
The config no longer stores both the configured instance allocator and the default allocator.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
I've went ahead with an enum-based solution to the problem as discussed on the RFC (which I'll be amending shortly).
As such, the
InstanceAllocatortrait has been removed from thewasmtimecrate.
peterhuene edited PR Review Comment.
peterhuene updated PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This commit refactors module instantiation in the runtime to allow for
different allocator implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theDefaultInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocator set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This commit also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene edited PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
alexcrichton submitted PR Review.
alexcrichton submitted PR Review.
alexcrichton created PR Review Comment:
FWIW
Box::new(SomeZst) as Box<dyn Any>doesn't actually allocate anything, so if the purpose of this was to eschew allocations I think it's fine to leave this without theOption?
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
It wasn't to elide an allocation, but to take the host state out of the instance allocation request when creating the instance handle and passing the remainder of the request to
initialize_vmcontext.I'm happy to undo this change and just splat what's needed from the request as discrete arguments to
initialize_vmcontext.
peterhuene edited PR Review Comment.
alexcrichton submitted PR Review.
alexcrichton created PR Review Comment:
Ah ok that seems fine to leave as-is in that case!
peterhuene edited PR Review Comment.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Given the latest changes to module linking which I've now rebased on, this is back to being
Box<dyn Any>.
peterhuene has marked PR #2454 as ready for review.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Whoops, this comment accidentally got removed during the rebase. Adding it back now.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
peterhuene edited PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene updated PR #2454 from instance-pooling to main:
This PR refactors module instantiation in the runtime to allow for
different instance allocation strategy implementations.It adds an
InstanceAllocatortrait with the current implementation put behind
theOnDemandInstanceAllocatorstruct.The Wasmtime API has been updated to allow a
Configto have an instance
allocation strategy set which will determine how instances get allocated.This change is in preparation for an alternative pooling instance allocator
that can reserve all needed host process address space in advance.This PR also makes changes to the
wasmtime_environcrate to represent
compiled modules in a way that reduces copying at instantiation time.See bytecodealliance/rfcs#5 about these proposed changes.
This PR depends on #2434.
peterhuene closed without merge PR #2454.
Last updated: Dec 06 2025 at 06:05 UTC