[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  &lt;<a class="reference external" \
href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#6 \
4;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</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  &lt;<a class="reference external" \
href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#6 \
4;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</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