Package: dvd+rw-tools
Version: 7.0-4
Severity: normal

The undocumented '-use-the-force-luke=bufsize=nnnM' option fails to
be useful because of the way growisofs determines the limitations of
available physical memory.

The offending code is (near growisofs.c:3100):

        #if defined(_SC_PAGESIZE) && defined(_SC_AVPHYS_PAGES)
            { size_t phys_mem = (size_t)sysconf(_SC_AVPHYS_PAGES) *
                                (size_t)sysconf(_SC_PAGESIZE);

                if (phys_mem)
                {   phys_mem /= 2;  /* normally AVPHYS is a bit smaller, so
                                     *  we commonly land on 1/4 RAM */  
                    while (the_buffer_size > phys_mem) the_buffer_size /= 2;
                }
            }
        #endif

The problem is that _SC_AVPHYS_PAGES is the number of free pages of RAM.
On a typical Linux system that number is about 10MB regardless of actual
RAM size, because all available memory except for that margin is typically
used for cache and buffers, which are not "available" according to the
definition that _SC_AVPHYS_PAGES uses.

This bug makes it practically impossible to increase the ring buffer size
of growisofs, since typical values for _SC_AVPHYS_PAGES are much lower
than even the default 32MB ring buffer size.

It would be better to use _SC_PHYS_PAGES instead of _SC_AVPHYS_PAGES
in the above code.  This will limit growisofs size to 1/2 of the real
physical memory, which is typically available (possibly after a bit
of swapping).  Of course it is ultimately up to the user to determine
what a reasonable ring buffer size is, since only the user knows what
other demands on the system RAM there might be.

-- System Information:
Debian Release: 3.1
  APT prefers stable
  APT policy: (500, 'stable'), (102, 'testing'), (101, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18.4-zb5s-s2-nf
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages dvd+rw-tools depends on:
ii  libc6                        2.3.6.ds1-8 GNU C Library: Shared libraries
ii  libgcc1                      1:4.1.1-19  GCC support library
ii  libstdc++6                   4.1.1-19    The GNU Standard C++ Library v3
ii  mkisofs                      9:1.1.0-1   Dummy transition package for genis

dvd+rw-tools recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to