On Jan 17, 2011, at 12:51 PM, Rainer Jung wrote:

> Hi,
> 
> I wrote a small patch fixing an alignment issue for mod_slotmem:
> 
> http://people.apache.org/~rjung/patches/mod_slotmem_shm_alignment.patch
> 
> The problem is: mod_slotmem uses a header for meta data before the actual 
> data slots. The addresses used for the data slots are offset by the size of 
> the meta data. Currently this size is divisible by 4 but not by 8 and thus 
> the data put into the slots is only aligned at 4 byte boudaries. If there is 
> data inside the slots needing 8 byte alignment, then the compiler can not 
> arrange for that.
> 
> I fixed it by increasing the offset to the APR default alignment. Please 
> check whether you think there's a problem with it. It tried it in combination 
> with a separate proxy patch I'll post in a minute and both together fix the 
> crashes observed on Solaris Sparc.
> 

Sounds good.

> One additional remark: I didn't actually understand the original code lines:
> 
>   apr_size_t basesize = (item_size * item_num);
>   apr_size_t size = sizeof(sharedslotdesc_t) +
>                     (item_num * sizeof(char)) + basesize;
> 
> What's the reason for the "(item_num * sizeof(char))" part? I can't actually 
> see, where this part of the memory is being used.
> 

It's the inuse table

> Regards,
> 
> Rainer
> 

Reply via email to