[openib-general] Re: uverbs events
tziporet at mellanox.co.il
Mon Apr 11 23:28:14 PDT 2005
Very important - there is a bug in gcc version 3.4.2 that had been fixed in
This bug ((# 17581) heart us in VAPI when full optimizations is working in
bits or on 64 bits systems.
So I suggest that you replace gcc with gcc 3.4.3.
From: Roland Dreier [mailto:roland at topspin.com]
Sent: Tuesday, April 12, 2005 6:14 AM
To: Grant Grundler
Cc: openib-general at openib.org
Subject: Re: [openib-general] Re: uverbs events
Grant> doorbell is a local variable and mthca_write64() is
Grant> static inline. I don't see a problem with the assignments
Grant> to doorbell getting optimized out since the scope of that
Grant> variable is completely visible to gcc. A smart compiler
Grant> would just use registers and reduce the 32-bit stores.
Actually, what is that the compiler sees that we write to doorbell
as a uint32_t but then read from it by dereferencing a uint64_t*. -O2
turns on -fstrict-aliasing, which allows the compiler to assume that
pointers of different types never alias each other. So gcc says, hey,
all you do is write to that local doorbell variable and never do
anything with the values you write, so I'll just throw away that dead
code. So gcc ends up only generating code for the store in
mthca_write64() without any code to initialize doorbell.
openib-general mailing list
openib-general at openib.org
To unsubscribe, please visit
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the general