[prev in list] [next in list] [prev in thread] [next in thread]
List: graphicsmagick-commit
Subject: [GM-commit] GraphicsMagick: Use aligned memory allocator to align allocation...
From: GraphicsMagick Commits <graphicsmagick-commit () lists ! sourceforge ! net>
Date: 2012-07-27 1:24:31
Message-ID: hg.fe9e2eb655ce.1343352271.-1602079902 () blade ! simplesystems ! org
[Download RAW message or body]
changeset fe9e2eb655ce in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=fe9e2eb655ce
summary: Use aligned memory allocator to align allocations which should be aligned to \
cache line boundary.
diffstat:
ChangeLog | 6 ++++++
VisualMagick/installer/inc/version.isx | 4 ++--
magick/effect.c | 17 +++++++++++------
magick/memory.h | 2 +-
magick/random.c | 10 +++++-----
magick/semaphore.c | 10 +++++-----
magick/version.h | 4 ++--
www/Changelog.html | 8 ++++++++
8 files changed, 40 insertions(+), 21 deletions(-)
diffs (182 lines):
diff -r 46b952fd856d -r fe9e2eb655ce ChangeLog
--- a/ChangeLog Tue Jul 24 20:41:49 2012 -0500
+++ b/ChangeLog Thu Jul 26 20:24:26 2012 -0500
@@ -1,3 +1,9 @@
+2012-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
+
+ * magick/effect.c, magick/random.c, magick/semaphore.c: Use
+ aligned memory allocator to align allocations which should be
+ aligned to cache line boundary.
+
2012-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/memory.h (MagickAllocateAlignedMemory): New macro to
diff -r 46b952fd856d -r fe9e2eb655ce VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx Tue Jul 24 20:41:49 2012 -0500
+++ b/VisualMagick/installer/inc/version.isx Thu Jul 26 20:24:26 2012 -0500
@@ -10,5 +10,5 @@
#define public MagickPackageName "GraphicsMagick"
#define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020120724"
-#define public MagickPackageReleaseDate "snapshot-20120724"
+#define public MagickPackageVersionAddendum ".020120726"
+#define public MagickPackageReleaseDate "snapshot-20120726"
diff -r 46b952fd856d -r fe9e2eb655ce magick/effect.c
--- a/magick/effect.c Tue Jul 24 20:41:49 2012 -0500
+++ b/magick/effect.c Thu Jul 26 20:24:26 2012 -0500
@@ -2394,9 +2394,9 @@
i;
for (i=0; i < 4U; i++)
- MagickFreeMemory(skiplist->lists[i].nodes);
+ MagickFreeAlignedMemory(skiplist->lists[i].nodes);
}
- MagickFreeMemory(skiplist);
+ MagickFreeAlignedMemory(skiplist);
}
static MedianPixelList *AllocateMedianList(const long width)
@@ -2404,27 +2404,32 @@
MedianPixelList
*skiplist;
- skiplist=MagickAllocateMemory(MedianPixelList *,Max(sizeof(MedianPixelList),
- MAGICK_CACHE_LINE_SIZE));
+ skiplist=MagickAllocateAlignedMemory(MedianPixelList *,
+ MAGICK_CACHE_LINE_SIZE,
+ sizeof(MedianPixelList));
if (skiplist != (MedianPixelList *) NULL)
{
unsigned int
i;
+ const size_t
+ node_list_size = 65537U*sizeof(MedianListNode);
+
(void) memset(skiplist,0,sizeof(MedianPixelList));
skiplist->center=width*width/2;
skiplist->signature=MagickSignature;
for (i=0; i < 4U; i++)
{
skiplist->lists[i].nodes =
- MagickAllocateArray(MedianListNode *,65537U,sizeof(MedianListNode));
+ MagickAllocateAlignedMemory(MedianListNode *,MAGICK_CACHE_LINE_SIZE,
+ node_list_size);
if (skiplist->lists[i].nodes == (MedianListNode *) NULL)
{
DestroyMedianList(skiplist);
skiplist=(MedianPixelList *) NULL;
break;
}
- (void) memset(skiplist->lists[i].nodes,0,65537U*sizeof(MedianListNode));
+ (void) memset(skiplist->lists[i].nodes,0,node_list_size);
}
}
return skiplist;
diff -r 46b952fd856d -r fe9e2eb655ce magick/memory.h
--- a/magick/memory.h Tue Jul 24 20:41:49 2012 -0500
+++ b/magick/memory.h Thu Jul 26 20:24:26 2012 -0500
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2003 - 2012 GraphicsMagick Group
+ Copyright (C) 2003-2012 GraphicsMagick Group
This program is covered by multiple licenses, which are described in
Copyright.txt. You should have received a copy of Copyright.txt with this
diff -r 46b952fd856d -r fe9e2eb655ce magick/random.c
--- a/magick/random.c Tue Jul 24 20:41:49 2012 -0500
+++ b/magick/random.c Thu Jul 26 20:24:26 2012 -0500
@@ -1,5 +1,5 @@
/*
-% Copyright (C) 2009 GraphicsMagick Group
+% Copyright (C) 2009-2012 GraphicsMagick Group
%
% This program is covered by multiple licenses, which are described in
% Copyright.txt. You should have received a copy of Copyright.txt with this
@@ -51,9 +51,9 @@
kernel=(MagickRandomKernel *) MagickTsdGetSpecific(kernel_key);
if (kernel == (MagickRandomKernel *) NULL)
{
- kernel=MagickAllocateMemory(MagickRandomKernel *,
- Max(sizeof(MagickRandomKernel),
- MAGICK_CACHE_LINE_SIZE));
+ kernel=MagickAllocateAlignedMemory(MagickRandomKernel *,
+ MAGICK_CACHE_LINE_SIZE,
+ sizeof(MagickRandomKernel));
if (kernel == (MagickRandomKernel *) NULL)
MagickFatalError3(ResourceLimitFatalError,MemoryAllocationFailed,
UnableToAllocateRandomKernel);
@@ -91,7 +91,7 @@
/* This only frees memory associated with one thread */
kernel=(MagickRandomKernel *) MagickTsdGetSpecific(kernel_key);
- MagickFreeMemory(kernel);
+ MagickFreeAlignedMemory(kernel);
(void) MagickTsdSetSpecific(kernel_key,kernel);
MagickTsdKeyDelete(kernel_key);
}
diff -r 46b952fd856d -r fe9e2eb655ce magick/semaphore.c
--- a/magick/semaphore.c Tue Jul 24 20:41:49 2012 -0500
+++ b/magick/semaphore.c Thu Jul 26 20:24:26 2012 -0500
@@ -1,5 +1,5 @@
/*
-% Copyright (C) 2003-2010 GraphicsMagick Group
+% Copyright (C) 2003-2012 GraphicsMagick Group
% Copyright (C) 2002 ImageMagick Studio
%
% This program is covered by multiple licenses, which are described in
@@ -292,9 +292,9 @@
/*
Allocate semaphore.
*/
- semaphore_info=MagickAllocateMemory(SemaphoreInfo *,
- Max(sizeof(SemaphoreInfo),
- MAGICK_CACHE_LINE_SIZE));
+ semaphore_info=MagickAllocateAlignedMemory(SemaphoreInfo *,
+ MAGICK_CACHE_LINE_SIZE,
+ sizeof(SemaphoreInfo));
if (semaphore_info == (SemaphoreInfo *) NULL)
MagickFatalError3(ResourceLimitFatalError,MemoryAllocationFailed,
UnableToAllocateSemaphoreInfo);
@@ -418,7 +418,7 @@
DeleteCriticalSection(&(*semaphore_info)->mutex);
#endif
(void) memset((void *) *semaphore_info,0xbf,sizeof(SemaphoreInfo));
- MagickFreeMemory((*semaphore_info));
+ MagickFreeAlignedMemory((*semaphore_info));
#if defined(USE_POSIX_THREADS)
PTHREAD_MUTEX_UNLOCK(&semaphore_mutex);
#endif
diff -r 46b952fd856d -r fe9e2eb655ce magick/version.h
--- a/magick/version.h Tue Jul 24 20:41:49 2012 -0500
+++ b/magick/version.h Thu Jul 26 20:24:26 2012 -0500
@@ -38,8 +38,8 @@
#define MagickLibVersion 0x120900
#define MagickLibVersionText "1.4"
#define MagickLibVersionNumber 12,9,0
-#define MagickChangeDate "20120724"
-#define MagickReleaseDate "snapshot-20120724"
+#define MagickChangeDate "20120726"
+#define MagickReleaseDate "snapshot-20120726"
/*
The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 46b952fd856d -r fe9e2eb655ce www/Changelog.html
--- a/www/Changelog.html Tue Jul 24 20:41:49 2012 -0500
+++ b/www/Changelog.html Thu Jul 26 20:24:26 2012 -0500
@@ -36,6 +36,14 @@
<div class="document">
+<p>2012-07-26 Bob Friesenhahn <<a class="reference external" \
href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span> \
4;</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p>
+<blockquote>
+<ul class="simple">
+<li>magick/effect.c, magick/random.c, magick/semaphore.c: Use
+aligned memory allocator to align allocations which should be
+aligned to cache line boundary.</li>
+</ul>
+</blockquote>
<p>2012-07-24 Bob Friesenhahn <<a class="reference external" \
href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span> \
4;</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p>
<blockquote>
<ul class="simple">
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Graphicsmagick-commit mailing list
Graphicsmagick-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-commit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic