Skip to content

Commit f1a3a64

Browse files
Cleanup the handling of cache parameters.
re: Unidata#2733 When addressing the above issue, I noticed that there was a disconnect in NCZarr between nc_set_chunk_cache and nc_set_var_chunk cache. Specifically, setting nc_set_chunk_cache had no impact on the per-variable cache parameters when nc_set_var_chunk_cache was not used. So, modified the NCZarr code so that the per-variable cache parameters are set in this order (#1 is first choice): 1. The values set by nc_set_var_chunk_cache 2. The values set by nc_set_chunk_cache 3. The defaults set by configure.ac
1 parent c798bb6 commit f1a3a64

File tree

12 files changed

+88
-68
lines changed

12 files changed

+88
-68
lines changed

CMakeLists.txt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -364,14 +364,17 @@ ENDIF()
364364
# Option checks
365365
################################
366366

367-
# HDF5 cache variables.
367+
# Default Cache variables.
368368
SET(DEFAULT_CHUNK_SIZE 16777216 CACHE STRING "Default Chunk Cache Size.")
369-
SET(DEFAULT_CHUNKS_IN_CACHE 10 CACHE STRING "Default number of chunks in cache.")
370-
SET(CHUNK_CACHE_SIZE 16777216 CACHE STRING "Default Chunk Cache Size.")
371-
SET(CHUNK_CACHE_NELEMS 4133 CACHE STRING "Default maximum number of elements in cache.")
372-
SET(CHUNK_CACHE_PREEMPTION 0.75 CACHE STRING "Default file chunk cache preemption policy for HDf5 files(a number between 0 and 1, inclusive.")
373-
SET(CHUNK_CACHE_SIZE_NCZARR 4194304 CACHE STRING "Default NCZarr Chunk Cache Size.")
374-
SET(MAX_DEFAULT_CACHE_SIZE 67108864 CACHE STRING "Default maximum cache size.")
369+
SET(DEFAULT_CHUNK_CACHE_SIZE 16777216U CACHE STRING "Default Chunk Cache Size.")
370+
SET(DEFAULT_CHUNKS_IN_CACHE 1000 CACHE STRING "Default number of chunks in cache.")
371+
SET(DEFAULT_CHUNK_CACHE_PREEMPTION 0.75 CACHE STRING "Default file chunk cache preemption policy (a number between 0 and 1, inclusive.")
372+
373+
# HDF5 default cache size values
374+
SET(CHUNK_CACHE_SIZE ${DEFAULT_CHUNK_CACHE_SIZE} CACHE STRING "Default HDF5 Chunk Cache Size.")
375+
SET(CHUNK_CACHE_NELEMS ${DEFAULT_CHUNKS_IN_CACHE} CACHE STRING "Default maximum number of elements in cache.")
376+
SET(CHUNK_CACHE_PREEMPTION ${DEFAULT_CHUNK_CACHE_PREEMPTION} CACHE STRING "Default file chunk cache preemption policy for HDf5 files(a number between 0 and 1, inclusive.")
377+
375378
SET(NETCDF_LIB_NAME "" CACHE STRING "Default name of the netcdf library.")
376379
SET(TEMP_LARGE "." CACHE STRING "Where to put large temp files if large file tests are run.")
377380
SET(NCPROPERTIES_EXTRA "" CACHE STRING "Specify extra pairs for _NCProperties.")

RELEASE_NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ This file contains a high-level description of this package's evolution. Release
77

88
## 4.9.3 - TBD
99

10+
* Fix default parameters for caching of NCZarr. See [Github #????](https://github.com/Unidata/netcdf-c/pull/????).
1011
* Introducing configure-time options to disable various filters, even if the required libraries are available on the system, in support of [GitHub #2712](https://github.com/Unidata/netcdf-c/pull/2712).
1112
* Fix memory leak WRT unreclaimed HDF5 plist. See [Github #2752](https://github.com/Unidata/netcdf-c/pull/2752).
1213
* Support HDF5 transient types when reading an HDF5 file. See [Github #2724](https://github.com/Unidata/netcdf-c/pull/2724).

config.h.cmake.in

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ are set when opening a binary file on Windows. */
8383
/* default file chunk cache size in bytes. */
8484
#cmakedefine CHUNK_CACHE_SIZE ${CHUNK_CACHE_SIZE}
8585

86-
/* default nczarr chunk cache size in bytes. */
87-
#cmakedefine CHUNK_CACHE_SIZE_NCZARR ${CHUNK_CACHE_SIZE_NCZARR}
88-
8986
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
9087
systems. This function is required for `alloca.c' support on those systems.
9188
*/
@@ -94,7 +91,16 @@ are set when opening a binary file on Windows. */
9491
/* Define to 1 if using `alloca.c'. */
9592
#cmakedefine C_ALLOCA 1
9693

97-
/* num chunks in default per-var chunk cache. */
94+
/* default num chunks per cache. */
95+
#cmakedefine DEFAULT_CHUNKS_CACHE_SIZE ${DEFAULT_CHUNKS_CACHE_SIZE}
96+
97+
/* default num chunks per cache. */
98+
#cmakedefine DEFAULT_CHUNK_CACHE_PREEMPTION ${DEFAULT_CHUNK_CACHE_PREEMPTION}
99+
100+
/* default total chunks cache size. */
101+
#cmakedefine DEFAULT_CHUNK_CACHE_SIZE ${DEFAULT_CHUNK_CACHE_SIZE}
102+
103+
/* default num chunks per cache. */
98104
#cmakedefine DEFAULT_CHUNKS_IN_CACHE ${DEFAULT_CHUNKS_IN_CACHE}
99105

100106
/* default chunk size in bytes */
@@ -459,9 +465,6 @@ with zip */
459465
/* If true, define nc_set_log_level. */
460466
#cmakedefine ENABLE_SET_LOG_LEVEL 1
461467

462-
/* max size of the default per-var chunk cache. */
463-
#cmakedefine MAX_DEFAULT_CACHE_SIZE ${MAX_DEFAULT_CACHE_SIZE}
464-
465468
/* min blocksize for posixio. */
466469
#cmakedefine NCIO_MINBLOCKSIZE ${NCIO_MINBLOCKSIZE}
467470

configure.ac

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -390,48 +390,58 @@ AC_ARG_WITH([default-chunk-size],
390390
AC_MSG_RESULT([$DEFAULT_CHUNK_SIZE])
391391
AC_DEFINE_UNQUOTED([DEFAULT_CHUNK_SIZE], [$DEFAULT_CHUNK_SIZE], [default chunk size in bytes])
392392

393-
# Did the user specify a max per-var cache size?
394-
AC_MSG_CHECKING([whether a maximum per-variable cache size for HDF5 was specified])
395-
AC_ARG_WITH([max-default-cache-size],
396-
[AS_HELP_STRING([--with-max-default-cache-size=<integer>],
397-
[Specify maximum size (in bytes) for the default per-var chunk cache.])],
398-
[MAX_DEFAULT_CACHE_SIZE=$with_max_default_cache_size], [MAX_DEFAULT_CACHE_SIZE=67108864])
399-
AC_MSG_RESULT([$MAX_DEFAULT_CACHE_SIZE])
400-
AC_DEFINE_UNQUOTED([MAX_DEFAULT_CACHE_SIZE], [$MAX_DEFAULT_CACHE_SIZE], [max size of the default per-var chunk cache.])
401-
402-
# Did the user specify a number of chunks in default per-var cache size?
403-
AC_MSG_CHECKING([whether a number of chunks for the default per-variable cache was specified])
393+
# Did the user specify a default cache size?
394+
AC_MSG_CHECKING([whether a default cache size was specified])
395+
AC_ARG_WITH([default-chunk-cache-size],
396+
[AS_HELP_STRING([--with-default-chunk-cache-size=<integer>],
397+
[Specify default size (in bytes) for chunk cache.])],
398+
[DEFAULT_CHUNK_CACHE_SIZE=$with_default_chunk_cache_size], [DEFAULT_CHUNK_CACHE_SIZE=16777216U])
399+
AC_MSG_RESULT([$DEFAULT_CHUNK_CACHE_SIZE])
400+
AC_DEFINE_UNQUOTED([DEFAULT_CHUNK_CACHE_SIZE], [$DEFAULT_CHUNK_CACHE_SIZE], [default size of the chunk cache.])
401+
402+
# Did the user specify a max number of chunks in default per-var cache size?
403+
AC_MSG_CHECKING([whether a default number of entries for the chunk cache was specified])
404404
AC_ARG_WITH([default-chunks-in-cache],
405405
[AS_HELP_STRING([--with-default-chunks-in-cache=<integer>],
406-
[Specify the number of chunks to store in default per-variable cache.])],
407-
[DEFAULT_CHUNKS_IN_CACHE=$with_default_chunks_in_cache], [DEFAULT_CHUNKS_IN_CACHE=10])
406+
[Specify the max number of chunks to store in cache.])],
407+
[DEFAULT_CHUNKS_IN_CACHE=$with_default_chunks_in_cache], [DEFAULT_CHUNKS_IN_CACHE=1000])
408408
AC_MSG_RESULT([$DEFAULT_CHUNKS_IN_CACHE])
409-
AC_DEFINE_UNQUOTED([DEFAULT_CHUNKS_IN_CACHE], [$DEFAULT_CHUNKS_IN_CACHE], [num chunks in default per-var chunk cache.])
409+
AC_DEFINE_UNQUOTED([DEFAULT_CHUNKS_IN_CACHE], [$DEFAULT_CHUNKS_IN_CACHE], [default max num chunks in chunk cache.])
410410

411+
# Did the user specify a default cache preemption
412+
AC_MSG_CHECKING([whether a default cache preemption was specified])
413+
AC_ARG_WITH([default-chunk-cache-preemption],
414+
[AS_HELP_STRING([--with-chunk-cache-preemption=<float between 0 and 1 inclusive>],
415+
[Specify default file chunk cache preemption policy (a number between 0 and 1, inclusive).])],
416+
[DEFAULT_CHUNK_CACHE_PREEMPTION=$with_chunk_cache_preemption], [DEFAULT_CHUNK_CACHE_PREEMPTION=0.75])
417+
AC_MSG_RESULT([$DEFAULT_CHUNK_CACHE_PREEMPTION])
418+
AC_DEFINE_UNQUOTED([DEFAULT_CHUNK_CACHE_PREEMPTION], [$DEFAULT_CHUNK_CACHE_PREEMPTION], [default file chunk cache preemption policy.])
419+
420+
# These three options are redundant over the --with-default... options above.
411421
# Did the user specify a default cache size for HDF5?
412422
AC_MSG_CHECKING([whether a default file cache size for HDF5 was specified])
413423
AC_ARG_WITH([chunk-cache-size],
414424
[AS_HELP_STRING([--with-chunk-cache-size=<integer>],
415425
[Specify default file cache chunk size for HDF5 files in bytes.])],
416-
[CHUNK_CACHE_SIZE=$with_chunk_cache_size], [CHUNK_CACHE_SIZE=16777216])
426+
[CHUNK_CACHE_SIZE=$with_chunk_cache_size], [CHUNK_CACHE_SIZE=DEFAULT_CHUNK_CACHE_SIZE])
417427
AC_MSG_RESULT([$CHUNK_CACHE_SIZE])
418428
AC_DEFINE_UNQUOTED([CHUNK_CACHE_SIZE], [$CHUNK_CACHE_SIZE], [default file chunk cache size in bytes.])
419429

420-
# Did the user specify a default cache nelems?
430+
# Did the user specify a default max cache entries for HDF5
421431
AC_MSG_CHECKING([whether a default file cache maximum number of elements for HDF5 was specified])
422432
AC_ARG_WITH([chunk-cache-nelems],
423433
[AS_HELP_STRING([--with-chunk-cache-nelems=<integer>],
424434
[Specify default maximum number of elements in the file chunk cache chunk for HDF5 files (should be prime number).])],
425-
[CHUNK_CACHE_NELEMS=$with_chunk_cache_nelems], [CHUNK_CACHE_NELEMS=4133])
435+
[CHUNK_CACHE_NELEMS=$with_chunk_cache_nelems], [CHUNK_CACHE_NELEMS=DEFAULT_CHUNKS_IN_CACHE])
426436
AC_MSG_RESULT([$CHUNK_CACHE_NELEMS])
427437
AC_DEFINE_UNQUOTED([CHUNK_CACHE_NELEMS], [$CHUNK_CACHE_NELEMS], [default file chunk cache nelems.])
428438

429-
# Did the user specify a default cache preemption?
439+
# Did the user specify a default cache preemption for HDF5?
430440
AC_MSG_CHECKING([whether a default cache preemption for HDF5 was specified])
431441
AC_ARG_WITH([chunk-cache-preemption],
432442
[AS_HELP_STRING([--with-chunk-cache-preemption=<float between 0 and 1 inclusive>],
433443
[Specify default file chunk cache preemption policy for HDF5 files (a number between 0 and 1, inclusive).])],
434-
[CHUNK_CACHE_PREEMPTION=$with_chunk_cache_preemption], [CHUNK_CACHE_PREEMPTION=0.75])
444+
[CHUNK_CACHE_PREEMPTION=$with_chunk_cache_preemption], [CHUNK_CACHE_PREEMPTION=DEFAULT_CHUNK_CACHE_PREEMPTION])
435445
AC_MSG_RESULT([$CHUNK_CACHE_PREEMPTION])
436446
AC_DEFINE_UNQUOTED([CHUNK_CACHE_PREEMPTION], [$CHUNK_CACHE_PREEMPTION], [default file chunk cache preemption policy.])
437447

@@ -953,16 +963,6 @@ if test "x$with_s3_testing" = xyes ; then
953963
AC_MSG_WARN([*** DO NOT SPECIFY WITH_S3_TESTING=YES UNLESS YOU HAVE ACCESS TO THE UNIDATA S3 BUCKET! ***])
954964
fi
955965

956-
# Set default
957-
# Did the user specify a default cache size for NCZarr?
958-
AC_MSG_CHECKING([whether a default file cache size for NCZarr was specified])
959-
AC_ARG_WITH([chunk-cache-size-nczarr],
960-
[AS_HELP_STRING([--with-chunk-cache-size-nczarr=<integer>],
961-
[Specify default maximum space used by the chunk cache NCZarr.])],
962-
[CHUNK_CACHE_SIZE_NCZARR=$with_chunk_cache_size_nczarr], [CHUNK_CACHE_SIZE_NCZARR=4194304])
963-
AC_MSG_RESULT([$CHUNK_CACHE_SIZE_NCZARR])
964-
AC_DEFINE_UNQUOTED([CHUNK_CACHE_SIZE_NCZARR], [$CHUNK_CACHE_SIZE_NCZARR], [default nczarr chunk cache size.])
965-
966966
# Check whether we want to enable strict null byte header padding.
967967
# See https://github.com/Unidata/netcdf-c/issues/657 for more information.
968968
AC_MSG_CHECKING([whether to enable strict null-byte header padding when reading (default off)])

libhdf5/nc4hdf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,8 +1144,8 @@ nc4_adjust_var_cache(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var)
11441144
if (chunk_size_bytes > var->chunkcache.size)
11451145
{
11461146
var->chunkcache.size = chunk_size_bytes * DEFAULT_CHUNKS_IN_CACHE;
1147-
if (var->chunkcache.size > MAX_DEFAULT_CACHE_SIZE)
1148-
var->chunkcache.size = MAX_DEFAULT_CACHE_SIZE;
1147+
if (var->chunkcache.size > DEFAULT_CHUNK_CACHE_SIZE)
1148+
var->chunkcache.size = DEFAULT_CHUNK_CACHE_SIZE;
11491149
if ((retval = nc4_reopen_dataset(grp, var)))
11501150
return retval;
11511151
}

libnczarr/zcache.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ typedef struct NCZChunkCache {
4444
size64_t chunksize; /* for real data */
4545
size64_t chunkcount; /* cross product of chunksizes */
4646
void* fillchunk; /* enough fillvalues to fill a real chunk */
47-
size_t maxentries; /* Max number of entries allowed; maxsize can override */
48-
size_t maxsize; /* Maximum space used by cache; 0 => nolimit */
47+
struct ChunkCache params;
4948
size_t used; /* How much total space is being used */
5049
NClist* mru; /* NClist<NCZCacheEntry> all cache entries in mru order */
5150
struct NCxcache* xcache;

libnczarr/zinternal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ Inserted into any .zattrs ? or should it go into the container?
9999
#define LEGAL_DIM_SEPARATORS "./"
100100
#define DFALT_DIM_SEPARATOR '.'
101101

102+
#define islegaldimsep(c) ((c) != '\0' && strchr(LEGAL_DIM_SEPARATORS,(c)) != NULL)
103+
102104
/* Default max string length for fixed length strings */
103105
#define NCZ_MAXSTR_DEFAULT 128
104106

105-
#define islegaldimsep(c) ((c) != '\0' && strchr(LEGAL_DIM_SEPARATORS,(c)) != NULL)
106-
107107
/* Mnemonics */
108108
#define ZCLEAR 0 /* For NCZ_copy_data */
109109
#define ZCLOSE 1 /* this is closeorabort as opposed to enddef */

libnczarr/zvar.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ NCZ_def_var(int ncid, const char *name, nc_type xtype, int ndims,
297297
char norm_name[NC_MAX_NAME + 1];
298298
int d;
299299
int retval;
300+
NCglobalstate* gstate = NC_getglobalstate();
300301

301302
ZTRACE(1,"ncid=%d name=%s xtype=%d ndims=%d dimids=%s",ncid,name,xtype,ndims,nczprint_idvector(ndims,dimidsp));
302303

@@ -383,7 +384,7 @@ NCZ_def_var(int ncid, const char *name, nc_type xtype, int ndims,
383384
zvar->common.file = h5;
384385
zvar->scalar = (ndims == 0 ? 1 : 0);
385386

386-
zvar->dimension_separator = NC_getglobalstate()->zarr.dimension_separator;
387+
zvar->dimension_separator = gstate->zarr.dimension_separator;
387388
assert(zvar->dimension_separator != 0);
388389

389390
/* Set these state flags for the var. */
@@ -460,15 +461,16 @@ var->type_info->rc++;
460461
{for(d=0;d<var->ndims;d++) {zvar->chunkproduct *= var->chunksizes[d];}}
461462
zvar->chunksize = zvar->chunkproduct * var->type_info->size;
462463

463-
/* Override the cache setting to use NCZarr defaults */
464-
var->chunkcache.size = CHUNK_CACHE_SIZE_NCZARR;
465-
var->chunkcache.nelems = ceildiv(var->chunkcache.size,zvar->chunksize);
466-
var->chunkcache.preemption = 1; /* not used */
464+
/* Set cache defaults */
465+
var->chunkcache = gstate->chunkcache;
467466

468467
/* Create the cache */
469468
if((retval=NCZ_create_chunk_cache(var,zvar->chunkproduct*var->type_info->size,zvar->dimension_separator,&zvar->cache)))
470469
BAIL(retval);
471470

471+
/* Set the per-variable chunkcache defaults */
472+
zvar->cache->params = var->chunkcache;
473+
472474
/* Return the varid. */
473475
if (varidp)
474476
*varidp = var->hdr.id;

libnczarr/zxcache.c

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ fprintf(stderr,"xxx: adjusting cache for: %s\n",var->hdr.name);
120120
/* Reclaim any existing fill_chunk */
121121
if((stat = NCZ_reclaim_fill_chunk(zcache))) goto done;
122122
/* Reset the parameters */
123-
zvar->cache->maxsize = var->chunkcache.size;
124-
zvar->cache->maxentries = var->chunkcache.nelems;
123+
zvar->cache->params.size = var->chunkcache.size;
124+
zvar->cache->params.nelems = var->chunkcache.nelems;
125+
zvar->cache->params.preemption = var->chunkcache.preemption;
125126
#ifdef DEBUG
126127
fprintf(stderr,"%s.cache.adjust: size=%ld nelems=%ld\n",
127128
var->hdr.name,(unsigned long)zvar->cache->maxsize,(unsigned long)zvar->cache->maxentries);
@@ -181,6 +182,9 @@ NCZ_create_chunk_cache(NC_VAR_INFO_T* var, size64_t chunksize, char dimsep, NCZC
181182
}
182183
}
183184

185+
/* Set default cache parameters */
186+
cache->params = NC_getglobalstate()->chunkcache;
187+
184188
#ifdef FLUSH
185189
cache->maxentries = 1;
186190
#endif
@@ -192,7 +196,7 @@ NCZ_create_chunk_cache(NC_VAR_INFO_T* var, size64_t chunksize, char dimsep, NCZC
192196
if((stat = ncxcachenew(LEAFLEN,&cache->xcache))) goto done;
193197
if((cache->mru = nclistnew()) == NULL)
194198
{stat = NC_ENOMEM; goto done;}
195-
nclistsetalloc(cache->mru,cache->maxentries);
199+
nclistsetalloc(cache->mru,cache->params.nelems);
196200

197201
if(cachep) {*cachep = cache; cache = NULL;}
198202
done:
@@ -371,8 +375,12 @@ makeroom(NCZChunkCache* cache)
371375
static int
372376
flushcache(NCZChunkCache* cache)
373377
{
374-
cache->maxentries = 0;
375-
return constraincache(cache);
378+
int stat = NC_NOERR;
379+
size_t oldsize = cache->params.size;
380+
cache->params.size = 0;
381+
stat = constraincache(cache);
382+
cache->params.size = oldsize;
383+
return stat;
376384
}
377385

378386

@@ -391,7 +399,7 @@ constraincache(NCZChunkCache* cache)
391399
if(cache->used == 0) goto done;
392400

393401
/* Flush from LRU end if we are at capacity */
394-
while(nclistlength(cache->mru) > cache->maxentries || cache->used > cache->maxsize) {
402+
while(nclistlength(cache->mru) > cache->params.nelems || cache->used > cache->params.size) {
395403
int i;
396404
void* ptr;
397405
NCZCacheEntry* e = ncxcachelast(cache->xcache); /* last entry is the least recently used */
@@ -858,8 +866,8 @@ NCZ_printxcache(NCZChunkCache* cache)
858866
ncbytescat(buf,s);
859867

860868
snprintf(s,sizeof(s),"\tmaxentries=%u\n\tmaxsize=%u\n\tused=%u\n\tdimsep='%c'\n",
861-
(unsigned)cache->maxentries,
862-
(unsigned)cache->maxsize,
869+
(unsigned)cache->params.nelems,
870+
(unsigned)cache->params.size,
863871
(unsigned)cache->used,
864872
cache->dimension_separator
865873
);

libsrc4/nc4internal.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2084,9 +2084,9 @@ NC_createglobalstate(void)
20842084
if(tmp != NULL && strlen(tmp) > 0)
20852085
nc_globalstate->rcinfo->rcfile = strdup(tmp);
20862086
/* Initialize chunk cache defaults */
2087-
nc_globalstate->chunkcache.size = CHUNK_CACHE_SIZE; /**< Default chunk cache size. */
2088-
nc_globalstate->chunkcache.nelems = CHUNK_CACHE_NELEMS; /**< Default chunk cache number of elements. */
2089-
nc_globalstate->chunkcache.preemption = CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */
2087+
nc_globalstate->chunkcache.size = DEFAULT_CHUNK_CACHE_SIZE; /**< Default chunk cache size. */
2088+
nc_globalstate->chunkcache.nelems = DEFAULT_CHUNKS_IN_CACHE; /**< Default chunk cache number of elements. */
2089+
nc_globalstate->chunkcache.preemption = DEFAULT_CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */
20902090

20912091
done:
20922092
return stat;

0 commit comments

Comments
 (0)