Note that there are some explanatory texts on larger screens.

plurals
  1. POEINVAL with gpfs_fcntl
    primarykey
    data
    text
    <p>I'm trying to use prefetching hints on an IO-heavy code. I set up the code according to my understanding of the man page of gpfs_fcntl(), but do get an EINVAL. I'm a bit lost now what I'm doing wrong - any hints are appreciated.</p> <p>Mount: <code>/dev/scratch16 on /bgscratch type gpfs (rw,dev=cadmos-gss.gss1a:scratch16,ldev=scratch16)</code></p> <pre><code>Error: Prefetch using gpfs_fcntl failed: Invalid argument (22), 32768b at 7713095680 from /bgscratch/foo.dat </code></pre> <p>File: <code>-rw-rw-r-- 1 delalond bbp 14739308544 Jul 25 2012 /bgscratch/foo.dat</code></p> <p>Source:</p> <pre><code>void BufferedFile::prefetch( const uint64_t offset, const uint64_t size ) { if( file_.fd == -1 ) file_.fd = ::open( filename.c_str(), O_RDONLY ); if( file_.fd == -1 ) { LBWARN &lt;&lt; "open() failed: " &lt;&lt; lunchbox::sysError &lt;&lt; std::endl; return; } struct { gpfsFcntlHeader_t hdr; gpfsAccessRange_t acc; } arg; arg.hdr.totalLength = sizeof(arg); arg.hdr.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; arg.hdr.fcntlReserved = 0; arg.acc.structLen = sizeof(arg.acc); arg.acc.structType = GPFS_ACCESS_RANGE; arg.acc.start = offset; arg.acc.length = size; arg.acc.isWrite = 0; if( gpfs_fcntl( file_.fd, &amp;arg ) != 0 ) LBWARN &lt;&lt; "Prefetch using gpfs_fcntl failed: " &lt;&lt; lunchbox::sysError &lt;&lt; ", " &lt;&lt; size &lt;&lt; "b at " &lt;&lt; offset &lt;&lt; " from " &lt;&lt; filename &lt;&lt; std::endl; } </code></pre> <p>Edit: I could reproduce the problem in a standalone application, and the error happens once start in greater than 4GB, even though it is a long long and a 64 bit system.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload