On Sat, Oct 25, 2008 at 07:30:50AM +0000, Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB/src/gdk
> In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv30373
> 
> Modified Files:
>       gdk_posix.mx 
> Log Message:
> The memory map table maintained for the vmtrim
> should be aligned to the number of mapped files.
> In more recent applications, such as the SkyServer
> this may be around 2000 BATs easily.
> For the time being the limit of 100 is increased to 4096
> 
> The remainder are additions of '#' in error messages
> to prepare for problems in the API.

just an idea (without background knowledge):
shouldn't we introduce a new symbol/chracter in the protocol to indicate
warnings and informative message?
'!' indicates errors (obviously never to be ignored)
'#' indicates (usually to be ignored) comments
'?' to be added to indicate warnings (and "informative messages)?
'?' to be added for ... ??

Stefan

> 
> 
> 
> U gdk_posix.mx
> Index: gdk_posix.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_posix.mx,v
> retrieving revision 1.157
> retrieving revision 1.158
> diff -u -d -r1.157 -r1.158
> --- gdk_posix.mx      10 Oct 2008 08:50:35 -0000      1.157
> +++ gdk_posix.mx      25 Oct 2008 07:30:48 -0000      1.158
> @@ -389,7 +389,7 @@
>   * hope the VM paging algorithm behaves better than Linux which just runs off
>   * the cliff and if MonetDB does not prevent RSS from being too high, enters 
> coma.
>   *
> - * We will only eb able to sensibly test this on Windows64. On Windows32, 
> mmap sizes
> + * We will only be able to sensibly test this on Windows64. On Windows32, 
> mmap sizes
>   * do not significantly exceed RAM sizes so MonetDB swapping actually will 
> not happen
>   * (of course, you've got this nasty problem of VM fragemntation and failing 
> mmaps instead).
>   *
> @@ -488,6 +488,10 @@
>   * to the cursors (i.e. pointers to b->batBuns->free or the cursors
>   * in radix-cluster), which an enhanced version of this thread might
>   * take into account.
> + *
> + * [Kersten] The memory map table should be aligned to the number of
> + * mapped files. In more recent applications, such as the SkyServer
> + * this may be around 2000 BATs easily.
>   */
>  
>  #ifdef HAVE_PTHREAD_H
> @@ -519,7 +523,7 @@
>  #endif
>  
>  #define MT_MMAP_TILE (1<<27)
> -#define MT_MMAP_BUFSIZE 100
> +#define MT_MMAP_BUFSIZE 4096
>  MT_mmap_t MT_mmap_tab[MT_MMAP_BUFSIZE];
>  int MT_mmap_cur = -1, MT_mmap_first = -1, MT_mmap_free = 0;
>  
> @@ -598,7 +602,7 @@
>               if (MT_mmap_cur == -1)
>                       MT_mmap_cur = i;
>  #ifdef MMAP_DEBUG
> -             stream_printf(GDKerr, "MT_mmap_new: %s fd=%d\n", path, fd);
> +             stream_printf(GDKerr, "#MT_mmap_new: %s fd=%d\n", path, fd);
>  #endif
>               strncpy(MT_mmap_tab[i].path, path, 128);
>               MT_mmap_tab[i].base = base;
> @@ -642,13 +646,13 @@
>                               /* tell the OS quite clearly that you want to 
> drop this */
>                               ret = posix_fadvise(MT_mmap_tab[victim].fd, 
> 0LL, MT_mmap_tab[victim].len, POSIX_FADV_DONTNEED);
>  #ifdef MMAP_DEBUG
> -                             stream_printf(GDKerr, "MT_mmap_del: 
> posix_fadvise(%s,fd=%d,%uMB,POSIX_FADV_DONTNEED) = %d\n", 
> MT_mmap_tab[victim].path, MT_mmap_tab[victim].fd, (unsigned int) 
> (MT_mmap_tab[victim].len >> 20), ret);
> +                             stream_printf(GDKerr, "#MT_mmap_del: 
> posix_fadvise(%s,fd=%d,%uMB,POSIX_FADV_DONTNEED) = %d\n", 
> MT_mmap_tab[victim].path, MT_mmap_tab[victim].fd, (unsigned int) 
> (MT_mmap_tab[victim].len >> 20), ret);
>  #endif
>                       }
>  #endif
>                       ret = close(MT_mmap_tab[victim].fd);
>  #ifdef MMAP_DEBUG
> -                     stream_printf(GDKerr, "MT_mmap_del: close(%s fd=%d) = 
> %d\n", MT_mmap_tab[victim].path, MT_mmap_tab[victim].fd, ret);
> +                     stream_printf(GDKerr, "#MT_mmap_del: close(%s fd=%d) = 
> %d\n", MT_mmap_tab[victim].path, MT_mmap_tab[victim].fd, ret);
>  #endif
>                       MT_mmap_tab[victim].next = MT_mmap_free;
>                       MT_mmap_empty(victim);
> @@ -674,7 +678,7 @@
>                       if (MT_mmap_tab[i].fd >= 0) {
>                               ret = posix_fadvise(MT_mmap_tab[i].fd, 0, len, 
> advice);
>  #ifdef MMAP_DEBUG
> -                             stream_printf(GDKerr, "MT_fadvise: 
> posix_fadvise(%s,fd=%d,%uMB,%d) = %d\n", MT_mmap_tab[i].path, 
> MT_mmap_tab[i].fd, (unsigned int) (len >> 20), advice, ret);
> +                             stream_printf(GDKerr, "#MT_fadvise: 
> posix_fadvise(%s,fd=%d,%uMB,%d) = %d\n", MT_mmap_tab[i].path, 
> MT_mmap_tab[i].fd, (unsigned int) (len >> 20), advice, ret);
>  #endif
>                       }
>               }
> @@ -697,7 +701,7 @@
>       int ret = posix_madvise(MT_mmap_tab[i].base + off, MT_MMAP_TILE, 
> POSIX_MADV_DONTNEED);
>  
>       if (err) {
> -             stream_printf(err, "MT_mmap_unload_tile: 
> posix_madvise(%s,off=%uMB,%uMB,fd=%d,POSIX_MADV_DONTNEED) = %d\n",
> +             stream_printf(err, "#MT_mmap_unload_tile: 
> posix_madvise(%s,off=%uMB,%uMB,fd=%d,POSIX_MADV_DONTNEED) = %d\n",
>                             MT_mmap_tab[i].path, (unsigned int) (off >> 20),
>                             (unsigned int) (MT_MMAP_TILE >> 20), 
> MT_mmap_tab[i].fd, ret);
>       }
> @@ -706,7 +710,7 @@
>               /* tell the OS quite clearly that you want to drop this */
>               ret = posix_fadvise(MT_mmap_tab[i].fd, off, MT_MMAP_TILE, 
> POSIX_FADV_DONTNEED);
>               if (err) {
> -                     stream_printf(err, "MT_mmap_unload_tile: 
> posix_fadvise(%s,off=%uMB,%uMB,fd=%d,POSIX_MADV_DONTNEED) = %d\n",
> +                     stream_printf(err, "#MT_mmap_unload_tile: 
> posix_fadvise(%s,off=%uMB,%uMB,fd=%d,POSIX_MADV_DONTNEED) = %d\n",
>                                     MT_mmap_tab[i].path, (unsigned int) (off 
> >> 20),
>                                     (unsigned int) (MT_MMAP_TILE >> 20), 
> MT_mmap_tab[i].fd, ret);
>               }
> @@ -721,7 +725,7 @@
>  
>       /* save to disk an 128MB tile, and observe how long this takes */
>       if (err) {
> -             stream_printf(err, "MT_mmap_save_tile: 
> msync(%s,off=%uM,%u,SYNC)...\n",
> +             stream_printf(err, "#MT_mmap_save_tile: 
> msync(%s,off=%uM,%u,SYNC)...\n",
>                             MT_mmap_tab[i].path, (unsigned int) (tile >> 20),
>                             (unsigned int) (MT_MMAP_TILE >> 20));
>       }
> @@ -729,7 +733,7 @@
>       ret = MT_msync(MT_mmap_tab[i].base, tile, MT_MMAP_TILE, MMAP_SYNC);
>       t = GDKms() - t;
>       if (err) {
> -             stream_printf(err, "MT_mmap_save_tile: 
> msync(%s,tile=%uM,%uM,SYNC) = %d (%dms)\n",
> +             stream_printf(err, "#MT_mmap_save_tile: 
> msync(%s,tile=%uM,%uM,SYNC) = %d (%dms)\n",
>                             MT_mmap_tab[i].path, (unsigned int) (tile >> 20),
>                             (unsigned int) (MT_MMAP_TILE >> 20), ret, t);
>       }
> @@ -768,7 +772,7 @@
>  
>       (void) pthread_mutex_lock(&MT_mmap_lock);
>       if (err) {
> -             stream_printf(err, "MT_mmap_trim(%u MB): rss = %u MB\n", 
> (unsigned int) ((target) >> 20), (unsigned int) (rss >> 20));
> +             stream_printf(err, "#MT_mmap_trim(%u MB): rss = %u MB\n", 
> (unsigned int) ((target) >> 20), (unsigned int) (rss >> 20));
>       }
>       if (rss > target) {
>               /* try to selectively unload pages from the writable regions */
> @@ -1085,7 +1089,7 @@
>       int ret = munmap(p, len);
>  
>  #ifdef MMAP_DEBUG
> -     stream_printf(GDKerr, "munmap(" LLFMT "," LLFMT ",%d) = %d\n", (long 
> long) p, (long long) len, ret);
> +     stream_printf(GDKerr, "#munmap(" LLFMT "," LLFMT ",%d) = %d\n", (long 
> long) p, (long long) len, ret);
>  #endif
>       MT_mmap_del(p, len);
>       return ret;
> @@ -1097,7 +1101,7 @@
>       int ret = msync(((char*) p)+off, len, (mode & MMAP_SYNC) ? MS_SYNC : 
> ((mode & MMAP_ASYNC) ? MS_ASYNC : MS_INVALIDATE));
>  
>  #ifdef MMAP_DEBUG
> -     stream_printf(GDKerr, "msync(" LLFMT "," LLFMT ",%s) = %d\n", (long 
> long) p, (long long) len, (mode & MMAP_SYNC) ? "MS_SYNC" : ((mode & 
> MMAP_ASYNC) ? "MS_ASYNC" : "MS_INVALIDATE"), ret);
> +     stream_printf(GDKerr, "#msync(" LLFMT "," LLFMT ",%s) = %d\n", (long 
> long) p, (long long) len, (mode & MMAP_SYNC) ? "MS_SYNC" : ((mode & 
> MMAP_ASYNC) ? "MS_ASYNC" : "MS_INVALIDATE"), ret);
>  #endif
>       if (ret < 0)
>               return errno;
> @@ -1110,7 +1114,7 @@
>       int ret = posix_madvise(p, len, advise);
>  
>  #ifdef MMAP_DEBUG
> -     stream_printf(GDKerr, "posix_madvise(" PTRFMT "," SZFMT ",%d) = %d\n", 
> PTRFMTCAST p, len, advise, ret);
> +     stream_printf(GDKerr, "#posix_madvise(" PTRFMT "," SZFMT ",%d) = %d\n", 
> PTRFMTCAST p, len, advise, ret);
>  #endif
>       if (MT_fadvise(p, len, advise))
>               ret = -1;
> @@ -1468,7 +1472,7 @@
>       }
>       if (heapstatus == _HEAPBADPTR || heapstatus == _HEAPBADBEGIN || 
> heapstatus == _HEAPBADNODE) {
>  
> -             stream_printf(GDKerr, "mallinfo(): heap is corrupt.");
> +             stream_printf(GDKerr, "#mallinfo(): heap is corrupt.");
>       }
>       _heapmin();
>       return _ret;
> @@ -1604,7 +1608,7 @@
>               return;
>  
>       if (!FindClose(dir->find_file_handle))
> -             stream_printf(GDKerr, "rewinddir(): FindClose() failed\n");
> +             stream_printf(GDKerr, "#rewinddir(): FindClose() failed\n");
>  
>       mask = malloc(strlen(dir->dir_name) + 3);
>       sprintf(mask, "%s\\*", dir->dir_name);
> @@ -2116,7 +2120,7 @@
>       p = (void *) VirtualAlloc(a, size, MEM_COMMIT | mode, PAGE_READWRITE);
>       (void) pthread_mutex_unlock(&MT_mmap_lock);
>       if (p == NULL) {
> -             stream_printf(GDKerr, "VirtualAlloc(" PTRFMT "," SZFMT 
> ",MEM_COMMIT,PAGE_READWRITE): failed\n", PTRFMTCAST a, size);
> +             stream_printf(GDKerr, "#VirtualAlloc(" PTRFMT "," SZFMT 
> ",MEM_COMMIT,PAGE_READWRITE): failed\n", PTRFMTCAST a, size);
>       }
>       return p;
>  }
> @@ -2126,9 +2130,9 @@
>  MT_vmfree(void *p, size_t size)
>  {
>       if (VirtualFree(p, size, MEM_DECOMMIT) == 0)
> -             stream_printf(GDKerr, "VirtualFree(" PTRFMT "," SZFMT 
> ",MEM_DECOMMIT): failed\n", PTRFMTCAST p, size);
> +             stream_printf(GDKerr, "#VirtualFree(" PTRFMT "," SZFMT 
> ",MEM_DECOMMIT): failed\n", PTRFMTCAST p, size);
>       if (VirtualFree(p, 0, MEM_RELEASE) == 0)
> -             stream_printf(GDKerr, "VirtualFree(" PTRFMT ",0,MEM_RELEASE): 
> failed\n", PTRFMTCAST p);
> +             stream_printf(GDKerr, "#VirtualFree(" PTRFMT ",0,MEM_RELEASE): 
> failed\n", PTRFMTCAST p);
>  }
>  
>  void *
> @@ -2149,7 +2153,7 @@
>               size_t ret = VirtualFree(p + newsize, oldsize - newsize, 
> MEM_DECOMMIT);
>  
>               if (ret == 0)
> -                     stream_printf(GDKerr, "VirtualFree(" PTRFMT "," SSZFMT 
> ",MEM_DECOMMIT): failed\n", PTRFMTCAST(p + newsize), (ssize_t) (oldsize - 
> newsize));
> +                     stream_printf(GDKerr, "#VirtualFree(" PTRFMT "," SSZFMT 
> ",MEM_DECOMMIT): failed\n", PTRFMTCAST(p + newsize), (ssize_t) (oldsize - 
> newsize));
>       } else if (oldsize < newsize) {
>               (void) pthread_mutex_lock(&MT_mmap_lock);
>               a = (char *) VirtualAlloc(p, newsize, MEM_COMMIT, 
> PAGE_READWRITE);
> 
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Monetdb-checkins mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
> 
> 

-- 
| Dr. Stefan Manegold | mailto:[EMAIL PROTECTED] |
| CWI,  P.O.Box 94079 | http://www.cwi.nl/~manegold/  |
| 1090 GB Amsterdam   | Tel.: +31 (20) 592-4212       |
| The Netherlands     | Fax : +31 (20) 592-4312       |

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to