Jan, thanks a lot for your explanations!
[another unrelated question goes below this small quote]

I'm absolutely sure you would not mind I'd quote here these things you replied 
to me privately,
so that people would know that salvation is near....

Jan Kotas @ Wednesday, June 29, 2005 8:27 PM [RE: SSCLI 1.0: GC: bug(?) repro 
case
> Thanks for reporting this problem to us. It is a bug in GC.
> The fix will be included in Rotor Whidbey. We have it fixed
> in our internal live tree already
Jan Kotas @ Thursday, June 30, 2005 7:24 PM [RE: SSCLI 1.0: GC: bug(?) in brick 
table search
> Wow, I would never believe anybody would find this bug in Rotor! You
> must have spent a lot of time going through the Rotor garbage
> collector.

....current release date of Whidbey itself is second week of November, and 
Rotor Whidbey would be available, as I understood soon
after that.

----

Jan, everybody.
if you don't mind, please shed a little light on a write barrier thing:

in Rotor we have fully cooperative client code.
everywhere there're appropriate calls to do accounting.

now how about this idea:

put the burdain of checking write barrier onto VM, i.e "simply" mark pages of 
old generations as read-only =
any attempt to write there would result in page fault,
which we catch and our handler does appropriate accounting.

the CORE question:

is this because VM way it's still way too slow?

for me it seems that writes to old generations would NOT be as often as to 
latest generation...
while latest generation pages can be made NON write-protected -- since we do 
not need any accounting when user writes _there_, and
this way we'd have MOST writes unchecked [while now we have them checked].

Again: I'm totally amazed that current (simple but thorough) implementation of 
a simple idea [manually-checked write barrier] works
so quick!

another reason why I ask is that I see that in CLR we have that same manual 
write barrier accounting (pointer "=" compiled to
"call", not "mov").

thanks in advance,
Alexander Petrossian, Moscow, Russia

P.S.
Jan, I also thought that gc_heap::find_first_object should have not been passed 
pointer to flagged-in-bricktable-as-big area.
but there were no appropriate "assert" in code (instead, there were obscure 
checks), that confused me.

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to