Why application request RAM quota from parent even if it is enough?

Alexander Tormasov a.tormasov at innopolis.ru
Mon Sep 9 23:21:41 CEST 2019


Hi Norman

> our discussion intermingles two topics that should better stay separated.
> 
> (A) How to overcome the road block of the Go runtime depending on an
> mmap feature, which is not available on Genode?
> 
> (B) What happens when a component runs out of memory?
> 


>> single application as a child of extenrally (not mine!) provided parent? 
> 
> I'm sorry about the confusion. I should have been more specific. Does my
> reply to Cedric [1] clarify that question?

Yes, I assume that for correct work we need something which we can control during code writing. This approach is very close to what I mean.
Wile probably one question I still have - if the child, e.g. due to incorrect request to parent, ask for too much resources and wait for response - what to do?
As I understand, in current scheme parent should respond something to the child waiting. In that case I still don’t see any clear picture what to do.

In your scheme described in the answer, management component probably is in charge to do something if dynamic init can’t satisfy request… like kill/restart or send some signal to hanging child (I don’t mean unix-like signal, just RPC message if child can accept it). Is it true? What technically can be done in such a case?

> 
> That said, I don't have any magic spell for overcoming (A)
> unfortunately. Intuitively, I'd try to change the memory-allocation
> backend of the runtime, just like I stated in my previous posting. But
> since I haven't looked into the Go runtime myself, I unable to
> substantiate that.

This is complex question, I make some patches and overcome this issue (making initial memory allocation small enough to be able to normally alloc it, seems that runtime can work in this approach for some platforms), so, I can consider (temporary) question A somehow bypassed.

For Question B I received a kind of satisfactory response that I can make better inter-component config scheme which probably will solve my problem with hanging RAM request, while I not yet checked it.

Now I hit another problem with setcontext/getcontext/makecontext/swapcontext family which is not implemented, - probably I need to write separate email thread question about ;-)

Thanks!

Sincerely,
	Alexander




More information about the users mailing list