Issue 3002: A new finalization code ready for integration in Pharo
Issue 3026: after 12172, sync with repository and reload -- Marcus Denker -- http://www.marcusdenker.de INRIA Lille -- Nord Europe. Team RMoD. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, 1 Oct 2010, Marcus Denker wrote:
> Issue 3002: A new finalization code ready for integration in Pharo > Issue 3026: after 12172, sync with repository and reload If you didn't fix the migration code, then WeakFinalizationRegistry is still in the system. Details here: http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html Levente > > -- > Marcus Denker -- http://www.marcusdenker.de > INRIA Lille -- Nord Europe. Team RMoD. > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote:
> On Fri, 1 Oct 2010, Marcus Denker wrote: > >> Issue 3002: A new finalization code ready for integration in Pharo >> Issue 3026: after 12172, sync with repository and reload > > If you didn't fix the migration code, then WeakFinalizationRegistry is still > in the system. Details here: > > http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html > Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. should be Smalltalk forgetClass: WeakFinalizationRegistry logged: false. right? > > Levente > >> >> -- >> Marcus Denker -- http://www.marcusdenker.de >> INRIA Lille -- Nord Europe. Team RMoD. >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, 1 Oct 2010, Igor Stasenko wrote:
> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: > On Fri, 1 Oct 2010, Marcus Denker wrote: > >> Issue 3002: A new finalization code ready for integration in Pharo >> Issue 3026: after 12172, sync with repository and reload > > If you didn't fix the migration code, then WeakFinalizationRegistry is still > in the system. Details here: > > http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html > should be Smalltalk forgetClass: WeakFinalizationRegistry logged: false. right? Yes. Levente > > Levente > >> >> -- >> Marcus Denker -- http://www.marcusdenker.de >> INRIA Lille -- Nord Europe. Team RMoD. >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
2010/10/1 Levente Uzonyi <[hidden email]>:
> On Fri, 1 Oct 2010, Igor Stasenko wrote: > >> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >> On Fri, 1 Oct 2010, Marcus Denker wrote: >> >>> Issue 3002: A new finalization code ready for integration in Pharo >>> Issue 3026: after 12172, sync with repository and reload >> >> If you didn't fix the migration code, then WeakFinalizationRegistry is >> still >> in the system. Details here: >> >> >> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >> > You mean this not work: > Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. > > should be > Smalltalk forgetClass: WeakFinalizationRegistry logged: false. > > right? > > > Yes. > > > Levente > >> >> Levente >> >>> >>> -- >>> Marcus Denker -- http://www.marcusdenker.de >>> INRIA Lille -- Nord Europe. Team RMoD. >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Levente Uzonyi-2
Igor
Can you have a look because right now in 12174 I cannot do any update anymore so - either we fix it now or we have to rollbakc to 12161. Thanks. On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: > 2010/10/1 Levente Uzonyi <[hidden email]>: >> On Fri, 1 Oct 2010, Igor Stasenko wrote: >> >>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>> >>>> Issue 3002: A new finalization code ready for integration in Pharo >>>> Issue 3026: after 12172, sync with repository and reload >>> >>> If you didn't fix the migration code, then WeakFinalizationRegistry is >>> still >>> in the system. Details here: >>> >>> >>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>> >> You mean this not work: >> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >> >> should be >> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >> >> right? >> >> >> Yes. >> >> > Thanks for noticing. > >> Levente >> >>> >>> Levente >>> >>>> >>>> -- >>>> Marcus Denker -- http://www.marcusdenker.de >>>> INRIA Lille -- Nord Europe. Team RMoD. >>>> >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 1 October 2010 15:47, Stéphane Ducasse <[hidden email]> wrote:
> Igor > Can you have a look because right now in 12174 I cannot > do any update anymore so > - either we fix it now > or we have to rollbakc to 12161. > I will take a look > Thanks. > > > On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: > >> 2010/10/1 Levente Uzonyi <[hidden email]>: >>> On Fri, 1 Oct 2010, Igor Stasenko wrote: >>> >>>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>>> >>>>> Issue 3002: A new finalization code ready for integration in Pharo >>>>> Issue 3026: after 12172, sync with repository and reload >>>> >>>> If you didn't fix the migration code, then WeakFinalizationRegistry is >>>> still >>>> in the system. Details here: >>>> >>>> >>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>>> >>> You mean this not work: >>> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >>> >>> should be >>> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >>> >>> right? >>> >>> >>> Yes. >>> >>> >> Thanks for noticing. >> >>> Levente >>> >>>> >>>> Levente >>>> >>>>> >>>>> -- >>>>> Marcus Denker -- http://www.marcusdenker.de >>>>> INRIA Lille -- Nord Europe. Team RMoD. >>>>> >>>>> >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>> >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko AKA sig. >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
Igor
I was thinking to rollback now because we cannot do anything. Is is ok for you? And after we can include everything. Stef On Oct 1, 2010, at 3:08 PM, Igor Stasenko wrote: > On 1 October 2010 15:47, Stéphane Ducasse <[hidden email]> wrote: >> Igor >> Can you have a look because right now in 12174 I cannot >> do any update anymore so >> - either we fix it now >> or we have to rollbakc to 12161. >> > I will take a look >> Thanks. >> >> >> On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: >> >>> 2010/10/1 Levente Uzonyi <[hidden email]>: >>>> On Fri, 1 Oct 2010, Igor Stasenko wrote: >>>> >>>>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>>>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>>>> >>>>>> Issue 3002: A new finalization code ready for integration in Pharo >>>>>> Issue 3026: after 12172, sync with repository and reload >>>>> >>>>> If you didn't fix the migration code, then WeakFinalizationRegistry is >>>>> still >>>>> in the system. Details here: >>>>> >>>>> >>>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>>>> >>>> You mean this not work: >>>> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >>>> >>>> should be >>>> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >>>> >>>> right? >>>> >>>> >>>> Yes. >>>> >>>> >>> Thanks for noticing. >>> >>>> Levente >>>> >>>>> >>>>> Levente >>>>> >>>>>> >>>>>> -- >>>>>> Marcus Denker -- http://www.marcusdenker.de >>>>>> INRIA Lille -- Nord Europe. Team RMoD. >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Pharo-project mailing list >>>>>> [hidden email] >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Igor Stasenko AKA sig. >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>> >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko AKA sig. >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 1 October 2010 16:15, Stéphane Ducasse <[hidden email]> wrote:
> Igor > > I was thinking to rollback now because we cannot do anything. > Is is ok for you? > And after we can include everything. > Sure, no problem. It should not behave like that. There could be some very little speed degradation, but not like you describing. I found that after update 12172->12174 a FinalizationDependents in WeakArray held 4 weak registries before, but after update it also holds a WeakIdentityKeyDictionary with 9387 elements. This is something from monticello cache, but it screwed somehow.. I were able to delete it from weakdependents,manually, like in this script: arr := (WeakArray classPool at: #FinalizationDependents ). arr withIndexDo: [:e :i | e class == WeakRegistry ifFalse: [ arr at: i put: nil ]] After that, everything vent back to normal. This dictionary comes from MCMethodDefinition Definitions class var. So you can simply do: MCMethodDefinition shutDown to stop CPU hogging. But i wonder, if this is just one-time issue, or it will repeat again, after update. During writing this, i found that you already rewinded update, so i was unable to check if it will start consuming CPU on new code loaded, or its just some tension between MC and my migration procedure, which can be healed by MCMethodDefinition shutDown. > Stef > > On Oct 1, 2010, at 3:08 PM, Igor Stasenko wrote: > >> On 1 October 2010 15:47, Stéphane Ducasse <[hidden email]> wrote: >>> Igor >>> Can you have a look because right now in 12174 I cannot >>> do any update anymore so >>> - either we fix it now >>> or we have to rollbakc to 12161. >>> >> I will take a look >>> Thanks. >>> >>> >>> On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: >>> >>>> 2010/10/1 Levente Uzonyi <[hidden email]>: >>>>> On Fri, 1 Oct 2010, Igor Stasenko wrote: >>>>> >>>>>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>>>>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>>>>> >>>>>>> Issue 3002: A new finalization code ready for integration in Pharo >>>>>>> Issue 3026: after 12172, sync with repository and reload >>>>>> >>>>>> If you didn't fix the migration code, then WeakFinalizationRegistry is >>>>>> still >>>>>> in the system. Details here: >>>>>> >>>>>> >>>>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>>>>> >>>>> You mean this not work: >>>>> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >>>>> >>>>> should be >>>>> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >>>>> >>>>> right? >>>>> >>>>> >>>>> Yes. >>>>> >>>>> >>>> Thanks for noticing. >>>> >>>>> Levente >>>>> >>>>>> >>>>>> Levente >>>>>> >>>>>>> >>>>>>> -- >>>>>>> Marcus Denker -- http://www.marcusdenker.de >>>>>>> INRIA Lille -- Nord Europe. Team RMoD. >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Pharo-project mailing list >>>>>>> [hidden email] >>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Pharo-project mailing list >>>>>> [hidden email] >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Best regards, >>>>> Igor Stasenko AKA sig. >>>>> >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Igor Stasenko AKA sig. >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
I found the bug..
This was in WeakKeyDictionary>>expiredValuesDo: Please, try doing the same with this patch, and see if problem gone. See attachment. -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project WeakKeyDictionary-expiredValuesDo.st (614 bytes) Download Attachment |
In reply to this post by Igor Stasenko
On Fri, 1 Oct 2010, Igor Stasenko wrote:
> On 1 October 2010 16:15, Stéphane Ducasse <[hidden email]> wrote: > Igor > > I was thinking to rollback now because we cannot do anything. > Is is ok for you? > And after we can include everything. > Sure, no problem. It should not behave like that. There could be some very little speed degradation, but not like you describing. I found that after update 12172->12174 a FinalizationDependents in WeakArray held 4 weak registries before, but after update it also holds a WeakIdentityKeyDictionary with 9387 elements. This is something from monticello cache, but it screwed somehow.. I were able to delete it from weakdependents,manually, like in this script: arr := (WeakArray classPool at: #FinalizationDependents ). arr withIndexDo: [:e :i | e class == WeakRegistry ifFalse: [ arr at: i put: nil ]] After that, everything vent back to normal. This dictionary comes from MCMethodDefinition Definitions class var. So you can simply do: MCMethodDefinition shutDown to stop CPU hogging. But i wonder, if this is just one-time issue, or it will repeat again, after update. During writing this, i found that you already rewinded update, so i was unable to check if it will start consuming CPU on new code loaded, or its just some tension between MC and my migration procedure, which can be healed by MCMethodDefinition shutDown. IIRC the WeakKeyDictionary is Pharo doesn't work (doesn't free slots or so) if it's not registered to the finalization process, but Henrik will correct me if I'm wrong. Levente > Stef > > On Oct 1, 2010, at 3:08 PM, Igor Stasenko wrote: > >> On 1 October 2010 15:47, Stéphane Ducasse <[hidden email]> wrote: >>> Igor >>> Can you have a look because right now in 12174 I cannot >>> do any update anymore so >>> - either we fix it now >>> or we have to rollbakc to 12161. >>> >> I will take a look >>> Thanks. >>> >>> >>> On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: >>> >>>> 2010/10/1 Levente Uzonyi <[hidden email]>: >>>>> On Fri, 1 Oct 2010, Igor Stasenko wrote: >>>>> >>>>>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>>>>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>>>>> >>>>>>> Issue 3002: A new finalization code ready for integration in Pharo >>>>>>> Issue 3026: after 12172, sync with repository and reload >>>>>> >>>>>> If you didn't fix the migration code, then WeakFinalizationRegistry is >>>>>> still >>>>>> in the system. Details here: >>>>>> >>>>>> >>>>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>>>>> >>>>> You mean this not work: >>>>> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >>>>> >>>>> should be >>>>> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >>>>> >>>>> right? >>>>> >>>>> >>>>> Yes. >>>>> >>>>> >>>> Thanks for noticing. >>>> >>>>> Levente >>>>> >>>>>> >>>>>> Levente >>>>>> >>>>>>> >>>>>>> -- >>>>>>> Marcus Denker -- http://www.marcusdenker.de >>>>>>> INRIA Lille -- Nord Europe. Team RMoD. >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Pharo-project mailing list >>>>>>> [hidden email] >>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Pharo-project mailing list >>>>>> [hidden email] >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Best regards, >>>>> Igor Stasenko AKA sig. >>>>> >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Igor Stasenko AKA sig. >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
2010/10/1 Levente Uzonyi <[hidden email]>:
> On Fri, 1 Oct 2010, Igor Stasenko wrote: > >> On 1 October 2010 16:15, Stéphane Ducasse <[hidden email]> >> wrote: >> Igor >> >> I was thinking to rollback now because we cannot do anything. >> Is is ok for you? >> And after we can include everything. >> > > Sure, no problem. It should not behave like that. > There could be some very little speed degradation, but not like you > describing. > > I found that after update 12172->12174 > a FinalizationDependents in WeakArray > held 4 weak registries before, > but after update it also holds a WeakIdentityKeyDictionary with 9387 > elements. > > This is something from monticello cache, but it screwed somehow.. > I were able to delete it from weakdependents,manually, like in this script: > > arr := (WeakArray classPool at: #FinalizationDependents ). > arr > withIndexDo: [:e :i | > e class == WeakRegistry ifFalse: [ arr at: i put: nil > ]] > > After that, everything vent back to normal. > > This dictionary comes from MCMethodDefinition Definitions class var. > So you can simply do: > > MCMethodDefinition shutDown > > to stop CPU hogging. > > But i wonder, if this is just one-time issue, or it will repeat again, > after update. > > During writing this, i found that you already rewinded update, so i > was unable to check if > it will start consuming CPU on new code loaded, or its just some > tension between MC and > my migration procedure, which can be healed by > MCMethodDefinition shutDown. > > > IIRC the WeakKeyDictionary is Pharo doesn't work (doesn't free slots or so) > if it's not registered to the finalization process, but Henrik will correct > me if I'm wrong. > (association key: association). So, then associations get reused when new entries added. But i tricked myself by using #allAssociationsDo: , which were wiping out associations, before sending #finalize to their values... so, no finalization were run. Somehow, this lead to blowing up an MC method definitions cache. > > Levente > >> Stef >> >> On Oct 1, 2010, at 3:08 PM, Igor Stasenko wrote: >> >>> On 1 October 2010 15:47, Stéphane Ducasse <[hidden email]> >>> wrote: >>>> >>>> Igor >>>> Can you have a look because right now in 12174 I cannot >>>> do any update anymore so >>>> - either we fix it now >>>> or we have to rollbakc to 12161. >>>> >>> I will take a look >>>> >>>> Thanks. >>>> >>>> >>>> On Oct 1, 2010, at 12:49 PM, Igor Stasenko wrote: >>>> >>>>> 2010/10/1 Levente Uzonyi <[hidden email]>: >>>>>> >>>>>> On Fri, 1 Oct 2010, Igor Stasenko wrote: >>>>>> >>>>>>> On 1 October 2010 12:06, Levente Uzonyi <[hidden email]> wrote: >>>>>>> On Fri, 1 Oct 2010, Marcus Denker wrote: >>>>>>> >>>>>>>> Issue 3002: A new finalization code ready for integration in >>>>>>>> Pharo >>>>>>>> Issue 3026: after 12172, sync with repository and reload >>>>>>> >>>>>>> If you didn't fix the migration code, then WeakFinalizationRegistry >>>>>>> is >>>>>>> still >>>>>>> in the system. Details here: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-September/154009.html >>>>>>> >>>>>> You mean this not work: >>>>>> Smalltalk forgetClass: #WeakFinalizationRegistry logged: false. >>>>>> >>>>>> should be >>>>>> Smalltalk forgetClass: WeakFinalizationRegistry logged: false. >>>>>> >>>>>> right? >>>>>> >>>>>> >>>>>> Yes. >>>>>> >>>>>> >>>>> Thanks for noticing. >>>>> >>>>>> Levente >>>>>> >>>>>>> >>>>>>> Levente >>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Marcus Denker -- http://www.marcusdenker.de >>>>>>>> INRIA Lille -- Nord Europe. Team RMoD. >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Pharo-project mailing list >>>>>>>> [hidden email] >>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Pharo-project mailing list >>>>>>> [hidden email] >>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best regards, >>>>>> Igor Stasenko AKA sig. >>>>>> >>>>>> _______________________________________________ >>>>>> Pharo-project mailing list >>>>>> [hidden email] >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>> _______________________________________________ >>>>>> Pharo-project mailing list >>>>>> [hidden email] >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Best regards, >>>>> Igor Stasenko AKA sig. >>>>> >>>>> _______________________________________________ >>>>> Pharo-project mailing list >>>>> [hidden email] >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>> >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko AKA sig. >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Oh crap.. the problem is not in that.
MC produces huge weak-key dictionary during updates for instance 12159 -> 12162 produces dictionary with 14k entries, which sits in #FinalizationDependents array and scanned after each GC. And during scanning, its using block closures (and each push of block closure consuming memory), so it big enough to trigger another GC. And its self-supporting process of wasting CPU cycles just for nothing... Here some numbers: (note, i din't installed new finalization code yet) MCMethodDefinition cachedDefinitions size 14987 [MCMethodDefinition cachedDefinitions finalizeValues ] timeToRun 10 so, it spends 10 ms dueing each GC cycle for scanning it. So, the quest is to avoid using block closures during scanning it, so it won't produce garbage. -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Here what happens:
Original method WeakKeyDictionary>>finalizeValues WeakKeyDictionary>>finalizeValues "Clear all associations with nil keys" array do:[:assoc| 1 to: array size do:[:i | | assoc | assoc := array at: i. assoc ifNotNil:[ assoc expire ifTrue:[ expired := expired + 1. tally := tally - 1. ]. ]. ]. And i noticed that after recompilation of this method, it starts spending much more time to scan 14k entries: [MCMethodDefinition cachedDefinitions finalizeValues ] timeToRun 167 (my guess that this method was never recompiled with new Eliot's closures). Now, if i change it to: finalizeValues "Clear all associations with nil keys" 1 to: array size do:[:i | | assoc | assoc := array at: i. array do:[:assoc| assoc ifNotNil:[ assoc expire ifTrue:[ expired := expired + 1. tally := tally - 1. ]. ]. ]. so, #to:do: is inlined by compiler, then numbers is much better: [MCMethodDefinition cachedDefinitions finalizeValues ] timeToRun 4 Just try it yourself, if you not believe. -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Igor Stasenko
OK marcus will give a try.
We will have to clean all these points with weakstuff once for all and getting more or less aligned with the work levente did. Stef On Oct 1, 2010, at 5:48 PM, Igor Stasenko wrote: > Here what happens: > > Original method WeakKeyDictionary>>finalizeValues > > WeakKeyDictionary>>finalizeValues > "Clear all associations with nil keys" > array do:[:assoc| > 1 to: array size do:[:i | | assoc | > assoc := array at: i. > assoc ifNotNil:[ > assoc expire ifTrue:[ > expired := expired + 1. > tally := tally - 1. > ]. > ]. > ]. > > And i noticed that after recompilation of this method, it starts > spending much more time to scan 14k entries: > > [MCMethodDefinition cachedDefinitions finalizeValues ] timeToRun > 167 > > (my guess that this method was never recompiled with new Eliot's closures). > > Now, if i change it to: > finalizeValues > "Clear all associations with nil keys" > 1 to: array size do:[:i | | assoc | > assoc := array at: i. > array do:[:assoc| > assoc ifNotNil:[ > assoc expire ifTrue:[ > expired := expired + 1. > tally := tally - 1. > ]. > ]. > ]. > > so, #to:do: is inlined by compiler, then numbers is much better: > > [MCMethodDefinition cachedDefinitions finalizeValues ] timeToRun > 4 > > Just try it yourself, if you not believe. > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |