|
View:
New views
12 Messages
—
Rating Filter:
Alert me
|
|
|
[rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?Hi,
I'm interested in the interface to underlying OS operations used by MMTk: dzmmap - demand zero mmap mprotect - remove read/write protections to a region of memory munprotect - allow read/write access to a region of memory the equivalent Harmony interfaces are: reserve - reserve a region of virtual memory for use commit - allow access in a region previously reserved uncommit - remove access to a region for completeness there is unreserve (but MMTk has no munmap). MMTk's dzmmap is equivalent to a reserve & commit, mprotect to uncommit, munprotect to commit. The Harmony interface more directly maps to that of Windows. It would make sense to me to push the Harmony naming convention through the RVM interface into MMTk's. I will provide a patch if other people agree. Ian ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?2009/3/1 Ian Rogers <ian.rogers@...> Hi, for uncommit read decommit
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?Ting Yang's work further suggested the following:
- If running benchmarks more or less standalone, with a known amount of demand for real memory, etc., it does not make much sense to munmap, given the overhead of remapping later. - If running in real life situations under varying load, and using something like Ting's heap size adjustment, you get better performance overall if you restrict your usage to the real memory available, which may sometimes decrease. When this happens, it may be a good idea to unmap those pages you don't care about, so the OS won't be as inclined to page out the ones you *do* care about. In sum, unmapping does not speed up *benchmarks*, so it was never really explored much and supported. But *real life* probably wants it there, and algorithms that will actually invoke it. However, unmapping after each gc remains a bad idea -- one should unmap when one is reducing the demand for real memory .... Bottom line: MMTk *should* support it, even if it does not do so now. Contrary opinions from down under? Best wishes -- Eliot ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?I think this is just a question of priorities. Any change like this we
make obviously introduces the possibility of performance and stability problems. As Eliot says, I think it makes sense to tie freeing virtual memory to the heap shrinking logic. However, heap growth/shrinking in general is not something that has got a huge amount of attention in MMTk. When comparing individual collectors we usually take it out of the picture entirely by evaluating across a range of fixed heap sizes. Of course for research in other areas this is not the case, and contributions of any improvements to our heap resizing logic could both improve the default behavior of Jikes RVM, as well as assist future research. On the separate question of changing the names for the virtual memory functions, I really don't think it is a good idea. The operations we have are fairly simple and I would argue quite obvious from the names (or at least javadoc). I think you have also misunderstood what the protection methods do anyway. We want to be able to actually control memory protection (read/write/execute) to both support collectors and help debugging. Currently we support protecting and then unprotecting memory. This is different to decommitting memory, which if I understand correctly means the physical storage is thrown away. Under windows... I think we would want: dzmmap -> VirtualAlloc (reserve + commit) mprotect -> VirtualProtect munprotect -> VirtualProtect munmap -> VirtualFree (decommit + unreserve) Under harmony, I don't know what the equivalent calls are. Maybe harmony does not provide the same level of access to memory protection. Cheers, Daniel. On Mon, Mar 2, 2009 at 9:27 AM, Eliot Moss <moss@...> wrote: > Ting Yang's work further suggested the following: > > - If running benchmarks more or less standalone, with a known amount of > demand for real memory, etc., it does not make much sense to munmap, > given the overhead of remapping later. > > - If running in real life situations under varying load, and using > something like Ting's heap size adjustment, you get better performance > overall if you restrict your usage to the real memory available, > which may sometimes decrease. When this happens, it may be a good idea > to unmap those pages you don't care about, so the OS won't be as > inclined to page out the ones you *do* care about. > > In sum, unmapping does not speed up *benchmarks*, so it was never > really explored much and supported. But *real life* probably wants > it there, and algorithms that will actually invoke it. However, > unmapping after each gc remains a bad idea -- one should unmap > when one is reducing the demand for real memory .... > > Bottom line: MMTk *should* support it, even if it does not do so > now. > > Contrary opinions from down under? > > Best wishes -- Eliot > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Jikesrvm-core mailing list > Jikesrvm-core@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-core > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?2009/3/2 Daniel Frampton <zyridium@...> I think this is just a question of priorities. Any change like this we My understanding is Harmony's names are designed to align with Windows, so you commit or decommit memory and specify protection at the same time. When you reserve memory you can specify protection and you can also specify that memory should be committed when it is reserved. If you wish to change the protection on committed memory you just commit it again with different protection. I think the problems with your proposal are that: - there is no way to reserve but not commit memory, which would be a good way to stop the problem we get when shared libraries are loaded into memory that MMTk thinks it controls. - it makes us have to write the OS interface and breaks the advantage of the Harmony portability library (portlib). Ian Cheers, ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?My windows comment was about logically what methods could be called,
not a suggestion to code to it directly. it seems to me that it is trivial to implement the primitives we currently require in terms of AIX, linux, harmony, or windows directly. Cheers, Daniel. On Mon, Mar 2, 2009 at 11:22 AM, Ian Rogers <ian.rogers@...> wrote: > 2009/3/2 Daniel Frampton <zyridium@...> >> >> I think this is just a question of priorities. Any change like this we >> make obviously introduces the possibility of performance and stability >> problems. As Eliot says, I think it makes sense to tie freeing virtual >> memory to the heap shrinking logic. However, heap growth/shrinking in >> general is not something that has got a huge amount of attention in >> MMTk. When comparing individual collectors we usually take it out of >> the picture entirely by evaluating across a range of fixed heap sizes. >> >> Of course for research in other areas this is not the case, and >> contributions of any improvements to our heap resizing logic could >> both improve the default behavior of Jikes RVM, as well as assist >> future research. >> >> On the separate question of changing the names for the virtual memory >> functions, I really don't think it is a good idea. The operations we >> have are fairly simple and I would argue quite obvious from the names >> (or at least javadoc). >> >> I think you have also misunderstood what the protection methods do >> anyway. We want to be able to actually control memory protection >> (read/write/execute) to both support collectors and help debugging. >> Currently we support protecting and then unprotecting memory. This is >> different to decommitting memory, which if I understand correctly >> means the physical storage is thrown away. >> >> Under windows... I think we would want: >> >> dzmmap -> VirtualAlloc (reserve + commit) >> mprotect -> VirtualProtect >> munprotect -> VirtualProtect >> munmap -> VirtualFree (decommit + unreserve) >> >> Under harmony, I don't know what the equivalent calls are. Maybe >> harmony does not provide the same level of access to memory >> protection. > > My understanding is Harmony's names are designed to align with Windows, so > you commit or decommit memory and specify protection at the same time. When > you reserve memory you can specify protection and you can also specify that > memory should be committed when it is reserved. If you wish to change the > protection on committed memory you just commit it again with different > protection. > > I think the problems with your proposal are that: > - there is no way to reserve but not commit memory, which would be a good > way to stop the problem we get when shared libraries are loaded into memory > that MMTk thinks it controls. > - it makes us have to write the OS interface and breaks the advantage of the > Harmony portability library (portlib). > > Ian > >> Cheers, >> Daniel. >> >> On Mon, Mar 2, 2009 at 9:27 AM, Eliot Moss <moss@...> wrote: >> > Ting Yang's work further suggested the following: >> > >> > - If running benchmarks more or less standalone, with a known amount of >> > demand for real memory, etc., it does not make much sense to munmap, >> > given the overhead of remapping later. >> > >> > - If running in real life situations under varying load, and using >> > something like Ting's heap size adjustment, you get better performance >> > overall if you restrict your usage to the real memory available, >> > which may sometimes decrease. When this happens, it may be a good idea >> > to unmap those pages you don't care about, so the OS won't be as >> > inclined to page out the ones you *do* care about. >> > >> > In sum, unmapping does not speed up *benchmarks*, so it was never >> > really explored much and supported. But *real life* probably wants >> > it there, and algorithms that will actually invoke it. However, >> > unmapping after each gc remains a bad idea -- one should unmap >> > when one is reducing the demand for real memory .... >> > >> > Bottom line: MMTk *should* support it, even if it does not do so >> > now. >> > >> > Contrary opinions from down under? >> > >> > Best wishes -- Eliot >> > >> > >> > ------------------------------------------------------------------------------ >> > Open Source Business Conference (OSBC), March 24-25, 2009, San >> > Francisco, CA >> > -OSBC tackles the biggest issue in open source: Open Sourcing the >> > Enterprise >> > -Strategies to boost innovation and cut costs with open source >> > participation >> > -Receive a $600 discount off the registration fee with the source code: >> > SFAD >> > http://p.sf.net/sfu/XcvMzF8H >> > _______________________________________________ >> > Jikesrvm-core mailing list >> > Jikesrvm-core@... >> > https://lists.sourceforge.net/lists/listinfo/jikesrvm-core >> > >> >> >> ------------------------------------------------------------------------------ >> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, >> CA >> -OSBC tackles the biggest issue in open source: Open Sourcing the >> Enterprise >> -Strategies to boost innovation and cut costs with open source >> participation >> -Receive a $600 discount off the registration fee with the source code: >> SFAD >> http://p.sf.net/sfu/XcvMzF8H >> _______________________________________________ >> Jikesrvm-core mailing list >> Jikesrvm-core@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-core > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Jikesrvm-core mailing list > Jikesrvm-core@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-core > > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?Hi Ian, This all seems like window-dressing (pardon the pun) to me. What difference does it make what the operations are called? Every OS will require some sort of adaptation layer to meet the needs of MMTk. To my Unix-blinkered mind the current naming scheme seems intuitive. Or perhaps you are trying to say that there is a deeper problem of mapping the MMTk abstractions to the underlying OS (in other words, I may be missing the point). Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 2 Mar 2009, at 08:17, Ian Rogers wrote: Hi, ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?My feeling is that the names used in the MMTk interface should most
closely align with the effect that MMTk expects, rather than the implementation on any given platform. I'm not opposed to changing the operation names, but I don't see that reserve/commit/uncommit expresses the intended effects any better than dzmmap/mprotect/munprotect. As you say, there is a simple 1:n mapping between the MMTk interface and the Harmony abstractions, so I don't see a good reason to change MMTk at this stage. Regards, Robin Ian Rogers wrote: > Hi, > > I'm interested in the interface to underlying OS operations used by MMTk: > > dzmmap - demand zero mmap > mprotect - remove read/write protections to a region of memory > munprotect - allow read/write access to a region of memory > > the equivalent Harmony interfaces are: > > reserve - reserve a region of virtual memory for use > commit - allow access in a region previously reserved > uncommit - remove access to a region > > for completeness there is unreserve (but MMTk has no munmap). > > MMTk's dzmmap is equivalent to a reserve & commit, mprotect to > uncommit, munprotect to commit. The Harmony interface more directly > maps to that of Windows. It would make sense to me to push the Harmony > naming convention through the RVM interface into MMTk's. I will > provide a patch if other people agree. > > Ian > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > ------------------------------------------------------------------------ > > _______________________________________________ > Jikesrvm-core mailing list > Jikesrvm-core@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-core > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?I agree with Daniel.
I would advise against changing all of our internal VM APIs to follow Harmony conventions. If our APIs aren't portable, then we should change them, but as far as I can tell, they already are portable, so we can leave them as-is. More crucially, changing our already proven internal VM APIs, with names and semantics we (and our users!) already understand, to use names and/or semantics of a foreign library seems like a sure way of generating bugs in the long run. Bottom line: we can support Harmony, on Linux, AIX, and Windows without having to move to Harmony conventions. I've yet to see an argument to the contrary. -F On Mar 1, 2009, at 8:22 PM, Daniel Frampton wrote: > My windows comment was about logically what methods could be called, > not a suggestion to code to it directly. > > it seems to me that it is trivial to implement the primitives we > currently require in terms of AIX, linux, harmony, or windows > directly. > > Cheers, > Daniel. > > On Mon, Mar 2, 2009 at 11:22 AM, Ian Rogers <ian.rogers@... > > wrote: >> 2009/3/2 Daniel Frampton <zyridium@...> >>> >>> I think this is just a question of priorities. Any change like >>> this we >>> make obviously introduces the possibility of performance and >>> stability >>> problems. As Eliot says, I think it makes sense to tie freeing >>> virtual >>> memory to the heap shrinking logic. However, heap growth/shrinking >>> in >>> general is not something that has got a huge amount of attention in >>> MMTk. When comparing individual collectors we usually take it out of >>> the picture entirely by evaluating across a range of fixed heap >>> sizes. >>> >>> Of course for research in other areas this is not the case, and >>> contributions of any improvements to our heap resizing logic could >>> both improve the default behavior of Jikes RVM, as well as assist >>> future research. >>> >>> On the separate question of changing the names for the virtual >>> memory >>> functions, I really don't think it is a good idea. The operations we >>> have are fairly simple and I would argue quite obvious from the >>> names >>> (or at least javadoc). >>> >>> I think you have also misunderstood what the protection methods do >>> anyway. We want to be able to actually control memory protection >>> (read/write/execute) to both support collectors and help debugging. >>> Currently we support protecting and then unprotecting memory. This >>> is >>> different to decommitting memory, which if I understand correctly >>> means the physical storage is thrown away. >>> >>> Under windows... I think we would want: >>> >>> dzmmap -> VirtualAlloc (reserve + commit) >>> mprotect -> VirtualProtect >>> munprotect -> VirtualProtect >>> munmap -> VirtualFree (decommit + unreserve) >>> >>> Under harmony, I don't know what the equivalent calls are. Maybe >>> harmony does not provide the same level of access to memory >>> protection. >> >> My understanding is Harmony's names are designed to align with >> Windows, so >> you commit or decommit memory and specify protection at the same >> time. When >> you reserve memory you can specify protection and you can also >> specify that >> memory should be committed when it is reserved. If you wish to >> change the >> protection on committed memory you just commit it again with >> different >> protection. >> >> I think the problems with your proposal are that: >> - there is no way to reserve but not commit memory, which would be >> a good >> way to stop the problem we get when shared libraries are loaded >> into memory >> that MMTk thinks it controls. >> - it makes us have to write the OS interface and breaks the >> advantage of the >> Harmony portability library (portlib). >> >> Ian >> >>> Cheers, >>> Daniel. >>> >>> On Mon, Mar 2, 2009 at 9:27 AM, Eliot Moss <moss@...> >>> wrote: >>>> Ting Yang's work further suggested the following: >>>> >>>> - If running benchmarks more or less standalone, with a known >>>> amount of >>>> demand for real memory, etc., it does not make much sense to >>>> munmap, >>>> given the overhead of remapping later. >>>> >>>> - If running in real life situations under varying load, and using >>>> something like Ting's heap size adjustment, you get better >>>> performance >>>> overall if you restrict your usage to the real memory available, >>>> which may sometimes decrease. When this happens, it may be a good >>>> idea >>>> to unmap those pages you don't care about, so the OS won't be as >>>> inclined to page out the ones you *do* care about. >>>> >>>> In sum, unmapping does not speed up *benchmarks*, so it was never >>>> really explored much and supported. But *real life* probably wants >>>> it there, and algorithms that will actually invoke it. However, >>>> unmapping after each gc remains a bad idea -- one should unmap >>>> when one is reducing the demand for real memory .... >>>> >>>> Bottom line: MMTk *should* support it, even if it does not do so >>>> now. >>>> >>>> Contrary opinions from down under? >>>> >>>> Best wishes -- Eliot >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Open Source Business Conference (OSBC), March 24-25, 2009, San >>>> Francisco, CA >>>> -OSBC tackles the biggest issue in open source: Open Sourcing the >>>> Enterprise >>>> -Strategies to boost innovation and cut costs with open source >>>> participation >>>> -Receive a $600 discount off the registration fee with the source >>>> code: >>>> SFAD >>>> http://p.sf.net/sfu/XcvMzF8H >>>> _______________________________________________ >>>> Jikesrvm-core mailing list >>>> Jikesrvm-core@... >>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-core >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Open Source Business Conference (OSBC), March 24-25, 2009, San >>> Francisco, >>> CA >>> -OSBC tackles the biggest issue in open source: Open Sourcing the >>> Enterprise >>> -Strategies to boost innovation and cut costs with open source >>> participation >>> -Receive a $600 discount off the registration fee with the source >>> code: >>> SFAD >>> http://p.sf.net/sfu/XcvMzF8H >>> _______________________________________________ >>> Jikesrvm-core mailing list >>> Jikesrvm-core@... >>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-core >> >> >> ------------------------------------------------------------------------------ >> Open Source Business Conference (OSBC), March 24-25, 2009, San >> Francisco, CA >> -OSBC tackles the biggest issue in open source: Open Sourcing the >> Enterprise >> -Strategies to boost innovation and cut costs with open source >> participation >> -Receive a $600 discount off the registration fee with the source >> code: SFAD >> http://p.sf.net/sfu/XcvMzF8H >> _______________________________________________ >> Jikesrvm-core mailing list >> Jikesrvm-core@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-core >> >> > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San > Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source > code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Jikesrvm-core mailing list > Jikesrvm-core@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-core ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?2009/3/2 Tony Hosking <hosking@...>
Where Harmony goes beyond our current abstractions is that it is much more rigorous. For example, memory pools are used to manage malloc/free. By following their portability library we get the ability to be a 1st class VM wrt integrating with applet viewers, launchers, etc. Currently Jikes RVM doesn't look like a regular Java VM, implemented through a jvm.dll, etc. This is all logged through the trackers and is a long standing problem. The reserve, commit, decommit, free strategy is fundamentally different to the current mmap, mprotect, munmap strategy. With the mmap strategy we don't have the ability to mark memory as being reserved but not yet in use. Without being able to reserve memory we are not a good citizen with the OS and we frequently get libraries and the like mapped into the MMTk managed address space. The consequence of this is that MMTk can only support heaps smaller than the address space and Jikes RVM breaks when a Linux vendor changes the memory layout (we had a spate of these during the 2.4 releases). Whilst it is possible to emulate the Harmony behaviour partially on the Linux calls (the notion of commit/decommit is particular to Windows and decommit is a nop on Linux) imo you end up with an ugly API, especially when you need to put it on top of Windows. Harmony have solved this problem already with their portability library and this is being used as the basis for IBM J9 (via IBM Hursley) and Intel DRLVM development work (which both include concurrent garbage collectors, etc.). By effectively having system calls as our own portability library we are always having to do leg work. We had to work constantly, me in particular (and Steven Augurt before me), doing leg work to keep Classpath working with the RVM as we were a special case (see syswrap and portable native sync in particular). If we can be a special case as little as possible it is inevitable that the development effort will be less. Ian
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?Ian,
The org.mmtk.vm.* API is (by definition) an abstraction that defines the MMTk *requirements*, which are explicitly intended to be OS and VM neutral and express nothing other than the current requirements of MMTk. The API should have nothing to do with Harmony. When MMTk changes its requirements, then we can change the API that defines those requirements. I can foresee this happening (of course), but it is certainly not on our critical todo list right now, so at this time I see no call for changing those particular APIs. If there is something you'd like changed in MMTk, by all means create a JIRA. This allows the issue to be noted and suitably prioritized. --Steve On 02/03/2009, at 7:30 PM, Ian Rogers wrote:
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
|
|
Re: [rvm-core] Renaming/aligning methods in org.mmtk.vm.Memory with Harmony?2009/3/2 Steve Blackburn <Steve.Blackburn@...>
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Jikesrvm-core mailing list Jikesrvm-core@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-core |
| Free embeddable forum powered by Nabble | Forum Help |