vasantha selvi | 1 Mar 2004 09:49
Picon
Favicon

Need understanding of GC_mark_from

Hi,
  I tried to understand GC_mark_from() but I am not able to get whole idea 
of HC_PUSH_CONTENTS. Can u give some idea about the function and 
HC_PUSH_CONTENTS will be really helpful to me.
Regards,
VS

_________________________________________________________________
INDIA TODAY  <at>  Rs. 5 + a free gift ! 
http://www.indiatoday.com/itoday/intlsubscription/itsubs/it_offer.html 
Subcribe Now ...
vasantha selvi | 1 Mar 2004 14:44
Picon
Favicon

Regarding Object map

Hi Hans,
        With your direction I gone through the tree structure used in Gc. I 
am to get some idea about GC_top_index and GC_bottom_index but really I am 
not get much about the object map.
I would like to get an understanding of how the object map is getting 
created and then how it is getting used by the GC allocator.

Awaiting for your response,
With Regards,
VS

_________________________________________________________________
Contact brides & grooms FREE! http://www.shaadi.com/ptnr.php?ptnr=hmltag 
Only on www.shaadi.com. Register now!
vasantha selvi | 1 Mar 2004 14:54
Picon
Favicon

Regarding thread context.

Hi Hans,
        Once I went through the win32_threads.c, in that 
GC_push_all_stacks() for ppc port I saw that registers which are reserved 
for kernel and global pointers are pushed into the mark stack.
Don't really get the reason for that. Any way pointer analysis going to find 
whether it is valid pointer or not, then why it is avoid pushing into the 
stack. Is there any specific reason for not pushing those registers into the 
mark stack.

With great interest waiting for the response,
With Regards,
VS

_________________________________________________________________
Raja Ravi Varma paintings. Buy art prints. 
http://go.msnserver.com/IN/42737.asp At MSN Shopping.
Simon Johansson | 1 Mar 2004 16:15
Picon
Picon

HPUX and pthread.

Hi..

I hope this is the right list for this type of question.

We are running HPUX 11 and Gcc 3.3.2. When compiling GC with pthread suport
this error is reporting.

bs/pthread_support.lo
pthread_support.c:157: error: thread-local storage not supported for this
target
*** Error exit code 1

Stop.
*** Error exit code 1

Stop.
ping@...:~/minne/gc6.2>

I have also tested gc6.3alpha4 and it is the same result.

Please help me.

/Simon
_______________________________________________
Simon Johansson
Produktledare och Systemadministratör
Ladokenheten, Umeå Universitet, 901 87 UMEÅ
Telefon: 090-786 9847
Fax: 090-786 6991
E-post: simon.johansson@...
(Continue reading)

Boehm, Hans | 1 Mar 2004 19:58
Picon
Favicon

RE: HPUX and pthread.

Unfortunately, I generally test on HP/UX only with the compiler that happens to be
installed on my local machines, which is the HP compiler in this case.

Please try building with USE_PTHREAD_SPECIFIC defined.  This is likely to avoid
the problem at some performance cost.  Please let me know if this works, and I'll
make it the default for that environment.  (I'm not sure why gcc doesn't support
__thread on HP/UX, given that the HP compiler was one of the first to do so,
and gcc does on Linux.  But I'm also not in a position to fix that.)

If you are comfortable modifying the code, and would like better performance for
thread-local allocation, you can try arranging for neither USE_PTHREAD_SPECIFIC
nor USE_HPUX_TLS (recently renamed to USE_COMPILER_TLS) to be defined at the top
of pthread_support.c.  That uses the collector's own thread-local storage
implementation, which may be faster than the pthread one.  But I'm not sure it will
work out of the box in your environment.  And the code involved is much trickier
than one would like.

Hans

> -----Original Message-----
> From: gc-bounces@...
> [mailto:gc-bounces@...]On Behalf Of Simon Johansson
> Sent: Monday, March 01, 2004 7:16 AM
> To: gc@...
> Subject: [Gc] HPUX and pthread.
> 
> 
> Hi..
> 
> I hope this is the right list for this type of question.
(Continue reading)

Boehm, Hans | 1 Mar 2004 21:10
Picon
Favicon

RE: Regarding Object map

The hb_map referenced by each object header specifies for each byte offset
within the block if

- A pointer to that offset within the block is a valid object pointer, and

- If so, what value needs to be subtracted from the pointer to get to the
beginning of the object.  (This is complicated slightly by the fact that
each entry is constrained to a byte.)

The maps are shared between different blocks containing objects of the same size.
The global GC_obj_map is a table of those maps that have been built already,
so that they can be reused.

The same thing could often be done with a mod operation and some tests.  At the time at
which the code was written, this sort of table lookup was appreciably faster.  And
it buys a fair amount of flexibility: GC_register_displacement() can be implemented
with close to zero cost.

Hans

> -----Original Message-----
> From: gc-bounces@...
> [mailto:gc-bounces@...]On Behalf Of vasantha selvi
> Sent: Monday, March 01, 2004 5:45 AM
> To: gc@...
> Subject: [Gc] Regarding Object map
> 
> 
> Hi Hans,
>         With your direction I gone through the tree structure 
(Continue reading)

Boehm, Hans | 1 Mar 2004 22:28
Picon
Favicon

RE: Regarding thread context.

I can't comment on this specific code, since I'm not familiar with the ABI.
In general, if you have a choice, it is best to push exactly those registers
that might contain pointers.  On some platforms that might include things
like floating point registers, if the compiler will spill integer registers
to those.

I would not include OS-reserved registers which it is unsafe
for the compiler to use anyway.  Including them is unlikely to make a real
difference since, as you say, they will probably not contain valid pointers
anyway.  But since it also saves some code to exclude them, there's no
reason to do otherwise.  (I have never seen the register pushing code show
up anywhere near the top in a profile.  Nor should it.)

I'm sure that some of the platform-dependent code does push some extra registers.
But that's really an oversight, usually caused by lack of familiarity with the ABI.
And it's safe to push extra registers, but clearly unsafe to accidentally omit some.

Hans

> -----Original Message-----
> From: gc-bounces@...
> [mailto:gc-bounces@...]On Behalf Of vasantha selvi
> Sent: Monday, March 01, 2004 5:55 AM
> To: gc@...
> Subject: [Gc] Regarding thread context.
> 
> 
> Hi Hans,
>         Once I went through the win32_threads.c, in that 
> GC_push_all_stacks() for ppc port I saw that registers which 
(Continue reading)

Boehm, Hans | 1 Mar 2004 22:39
Picon
Favicon

RE: Need understanding of GC_mark_from

All the PUSH_CONTENTS macros check the pointer "current" for validity and,
if it's valid, mark the current object and push a descriptor for it on the
mark stack, so that it can be traced later.

HC_PUSH_CONTENTS tries to speed up the operation a bit by reducing the necessary
number of header lookups.  It maintains a small cache of block addresses and
corresponding headers that were recently looked up.  If a block address is in
the cache, it uses the cached value, otherwise it uses the standard technique.
Last I measured this, it's a small win; the standard lookup technique is only a few
more memory references anyway.

Hans

> -----Original Message-----
> From: gc-bounces@...
> [mailto:gc-bounces@...]On Behalf Of vasantha selvi
> Sent: Monday, March 01, 2004 12:50 AM
> To: gc@...
> Subject: [Gc] Need understanding of GC_mark_from
> 
> 
> Hi,
>   I tried to understand GC_mark_from() but I am not able to 
> get whole idea 
> of HC_PUSH_CONTENTS. Can u give some idea about the function and 
> HC_PUSH_CONTENTS will be really helpful to me.
> Regards,
> VS
> 
> _________________________________________________________________
(Continue reading)

vasantha selvi | 2 Mar 2004 16:47
Picon
Favicon

Regarding Object map

Hi Hans,
        I have already gone through Dave Barrett diagram which has some 
diagramatic representation of the data structure used by GC. But still I am 
not able understand very clearly abt the object map.
Is there any reference papers to know about.
Regards,
VS

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar – get it now! 
http://clk.atdmt.com/AVE/go/onm00200415ave/direct/01/
vasantha selvi | 2 Mar 2004 16:50
Picon
Favicon

Regarding ABI

Hi Hans,
      Previously I asked about registers and pushing registers into the mark 
stack. In your reply to
refered some acronym ABI. Is the accronym expands to Application Binary 
Interface?

Regards,
VS

_________________________________________________________________
Easiest Money Transfer to India. Send Money To 6000 Indian Towns. 
http://go.msnserver.com/IN/42198.asp Easiest Way To Send Money Home!

Gmane