You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rj...@apache.org on 2011/01/17 23:03:45 UTC
svn commit: r1060108 - in /httpd/httpd/trunk: CHANGES
modules/slotmem/mod_slotmem_shm.c
Author: rjung
Date: Mon Jan 17 22:03:45 2011
New Revision: 1060108
URL: http://svn.apache.org/viewvc?rev=1060108&view=rev
Log:
Increase memory alignment for slotmem data in
mod_slotmem_shm.
Consumers still need to choose the slot sizes
appropriate for consistent alignment.
mod_slotmem_shm only cares about the alignment
for the first slot.
We use the APR default alignment.
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1060108&r1=1060107&r2=1060108&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Jan 17 22:03:45 2011
@@ -2,6 +2,9 @@
Changes with Apache 2.3.11
+ *) mod_slotmem_shm: Increase memory alignment for slotmem data.
+ [Rainer Jung]
+
*) mod_ssl: Add config options for OCSP: SSLOCSPResponderTimeout,
SSLOCSPResponseMaxAge, SSLOCSPResponseTimeSkew.
[Kaspar Brand <httpd-dev.2011 velox.ch>]
Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1060108&r1=1060107&r2=1060108&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
+++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Mon Jan 17 22:03:45 2011
@@ -51,6 +51,8 @@ typedef struct {
ap_slotmem_type_t type; /* type-specific flags */
} sharedslotdesc_t;
+#define AP_SLOTMEM_OFFSET (APR_ALIGN_DEFAULT(sizeof(sharedslotdesc_t)))
+
struct ap_slotmem_instance_t {
char *name; /* per segment name */
void *shm; /* ptr to memory segment (apr_shm_t *) */
@@ -253,7 +255,7 @@ static apr_status_t slotmem_create(ap_sl
const char *fname;
apr_shm_t *shm;
apr_size_t basesize = (item_size * item_num);
- apr_size_t size = sizeof(sharedslotdesc_t) +
+ apr_size_t size = AP_SLOTMEM_OFFSET +
(item_num * sizeof(char)) + basesize;
apr_status_t rv;
@@ -305,10 +307,10 @@ static apr_status_t slotmem_create(ap_sl
apr_shm_detach(shm);
return APR_EINVAL;
}
- ptr = ptr + sizeof(desc);
+ ptr = ptr + AP_SLOTMEM_OFFSET;
}
else {
- apr_size_t dsize = size - sizeof(sharedslotdesc_t);
+ apr_size_t dsize = size - AP_SLOTMEM_OFFSET;
if (name && name[0] != ':') {
apr_shm_remove(fname, gpool);
rv = apr_shm_create(&shm, size, fname, gpool);
@@ -333,7 +335,7 @@ static apr_status_t slotmem_create(ap_sl
desc.num = item_num;
desc.type = type;
memcpy(ptr, &desc, sizeof(desc));
- ptr = ptr + sizeof(desc);
+ ptr = ptr + AP_SLOTMEM_OFFSET;
memset(ptr, 0, dsize);
/*
* TODO: Error check the below... What error makes
@@ -418,7 +420,7 @@ static apr_status_t slotmem_attach(ap_sl
/* Read the description of the slotmem */
ptr = apr_shm_baseaddr_get(shm);
memcpy(&desc, ptr, sizeof(desc));
- ptr = ptr + sizeof(desc);
+ ptr = ptr + AP_SLOTMEM_OFFSET;
/* For the chained slotmem stuff */
res = (ap_slotmem_instance_t *) apr_pcalloc(gpool,