Skip to content

runtime: reuse freed memory blocks on wasm #59065

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

achille-roussel
Copy link
Contributor

@achille-roussel achille-roussel commented Mar 15, 2023

When compiling Go programs to WebAssembly, the memory allocation
strategy was neither releasing memory to the OS nor reusing blocks freed
by calls to runtime.sysFreeOS.

This CL unifies the plan9 and wasm memory management strategy
since both platforms use a linear memory space and do not have a
mechanism for returning memory blocks to the OS.

Fixes #59061

@gopherbot
Copy link
Contributor

This PR (HEAD: fd480b9) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/476717 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 1:

Congratulations on opening your first change. Thank you for your contribution!

Next steps:
A maintainer will review your change and provide feedback. See
https://go.dev/doc/contribute#review for more info and tips to get your
patch through code review.

Most changes in the Go project go through a few rounds of revision. This can be
surprising to people new to the project. The careful, iterative review process
is our way of helping mentor contributors and ensuring that their contributions
have a lasting impact.

During May-July and Nov-Jan the Go project is in a code freeze, during which
little code gets reviewed or merged. If a reviewer responds with a comment like
R=go1.11 or adds a tag like "wait-release", it means that this CL will be
reviewed as part of the next development cycle. See https://go.dev/s/release
for more details.


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 1: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 1:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 1: TryBot-Result+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 1:

(4 comments)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Julien Fabre:

Patch Set 1: Code-Review+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Achille Roussel:

Patch Set 1:

(6 comments)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR (HEAD: 3612863) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/476717 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 1: -Run-TryBot

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Achille Roussel:

Patch Set 1:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 2: Code-Review+1 Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 2:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@achille-roussel achille-roussel changed the title wasm: reuse freed memory blocks runtime: reused freed memory blocks on wasm Mar 16, 2023
@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 2: TryBot-Result+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 3: Code-Review+1 Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Evan Phoenix:

Patch Set 3: Code-Review+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR (HEAD: ded4db8) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/476717 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Cherry Mui:

Patch Set 4: Run-TryBot+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Cherry Mui:

Patch Set 4: Code-Review+2

(5 comments)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Achille Roussel:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Cherry Mui:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Achille Roussel:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@achille-roussel achille-roussel changed the title runtime: reused freed memory blocks on wasm runtime: reusefreed memory blocks on wasm Mar 20, 2023
@gopherbot
Copy link
Contributor

Message from Cherry Mui:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR (HEAD: 2895ff9) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/476717 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@achille-roussel achille-roussel changed the title runtime: reusefreed memory blocks on wasm runtime: reuse freed memory blocks on wasm Mar 20, 2023
When compiling Go programs to WebAssembly, the memory allocation
strategy was neither releasing memory to the OS nor reusing blocks
freed by calls to runtime.sysFreeOS.

This CL unifies the plan9 and wasm memory management strategy since
both platforms use a linear memory space and do not have a mechanism
for returning memory blocks to the OS.

Fixes golang#59061
@gopherbot
Copy link
Contributor

This PR (HEAD: 1c485be) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/476717 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Achille Roussel:

Patch Set 6:

(6 comments)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 6: Code-Review+1 Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 6:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Johan Brandhorst-Satzkorn:

Patch Set 6: Auto-Submit+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Cherry Mui:

Patch Set 6: Code-Review+2

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gopher Robot:

Patch Set 6: TryBot-Result+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/476717.
After addressing review feedback, remember to publish your drafts!

gopherbot pushed a commit that referenced this pull request Mar 21, 2023
When compiling Go programs to WebAssembly, the memory allocation
strategy was neither releasing memory to the OS nor reusing blocks freed
by calls to runtime.sysFreeOS.

This CL unifies the plan9 and wasm memory management strategy
since both platforms use a linear memory space and do not have a
mechanism for returning memory blocks to the OS.

Fixes #59061

Change-Id: I282ba93c0fe1a0961a31c0825b2a7e0478b8713d
GitHub-Last-Rev: 1c485be
GitHub-Pull-Request: #59065
Reviewed-on: https://go-review.googlesource.com/c/go/+/476717
Reviewed-by: Julien Fabre <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Auto-Submit: Johan Brandhorst-Satzkorn <[email protected]>
Reviewed-by: Evan Phoenix <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Reviewed-by: Johan Brandhorst-Satzkorn <[email protected]>
Run-TryBot: Johan Brandhorst-Satzkorn <[email protected]>
Reviewed-by: Cherry Mui <[email protected]>
@gopherbot
Copy link
Contributor

This PR is being closed because golang.org/cl/476717 has been merged.

@gopherbot gopherbot closed this Mar 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

wasm: does not return memory to the OS
2 participants