Skip to content

Commit 5a20b78

Browse files
That code only for linux
1 parent 16a7306 commit 5a20b78

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

src/python-zstd.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,7 @@ static PyObject *py_zstd_threads_count(PyObject* self, PyObject *args)
600600
return Py_BuildValue("i", threads);
601601
}
602602

603+
#if defined(__linux__)
603604
/**
604605
* Returns ZSTD determined cpu count, int
605606
*/
@@ -621,7 +622,7 @@ static PyObject *py_zstd_cpu_count_cpuinfo(PyObject* self, PyObject *args)
621622
int32_t threads = UTIL_countAvailableCores_parse_cpuinfo();
622623
return Py_BuildValue("i", threads);
623624
}
624-
625+
#endif //linux?
625626
static PyObject *py_zstd_set_cpu_cores_cache_ttl(PyObject* self, PyObject *args)
626627
{
627628
UNUSED(self);
@@ -719,8 +720,10 @@ static PyMethodDef ZstdMethods[] = {
719720
{"ZSTD_version_loaded", py_zstd_library_version_loaded, METH_NOARGS, NULL},
720721
{"ZSTD_version_number", py_zstd_library_version_int, METH_NOARGS, ZSTD_INT_VERSION_DOCSTRING},
721722
{"ZSTD_threads_count", py_zstd_cpu_count_sysconf, METH_NOARGS, ZSTD_THREADS_COUNT_DOCSTRING},
723+
#if defined(__linux__)
722724
{"ZSTD_cpu_count_sysconf", py_zstd_cpu_count_sysconf, METH_NOARGS, ZSTD_THREADS_COUNT_DOCSTRING},
723725
{"ZSTD_cpu_count_cpuinfo", py_zstd_cpu_count_cpuinfo, METH_NOARGS, ZSTD_THREADS_COUNT_DOCSTRING},
726+
#endif
724727
{"ZSTD_max_threads_count", py_zstd_max_threads_count, METH_NOARGS, ZSTD_MAX_THREADS_COUNT_DOCSTRING},
725728
{"ZSTD_min_compression_level", py_zstd_min_compression_level, METH_NOARGS, ZSTD_MIN_COMPRESSION_LEVEL_DOCSTRING},
726729
{"ZSTD_max_compression_level", py_zstd_max_compression_level, METH_NOARGS, ZSTD_MAX_COMPRESSION_LEVEL_DOCSTRING},

src/util.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ int UTIL_countAvailableCores(void)
131131
numLogicalCores = 1;
132132
} else {
133133
perror("zstd: can't get number of physical cpus");
134-
exit(1);
134+
return 1;
135135
}
136136
}
137137

@@ -166,13 +166,14 @@ int UTIL_countAvailableCores_posix_sysconf(void)
166166
lastTimeCached = time(NULL);
167167
return numLogicalCores;
168168
}
169-
/* Only parse /proc/cpuinfo
170-
* siblings / cpu cores should give hyperthreading ratio
171-
* otherwise fall back to 1 */
172169
// Simulate old version
173170
int UTIL_countAvailableCores(void) {
174171
return UTIL_countAvailableCores_posix_sysconf();
175172
}
173+
174+
/* Only parse /proc/cpuinfo
175+
* siblings / cpu cores should give hyperthreading ratio
176+
* otherwise fall back to 1 */
176177
int UTIL_countAvailableCores_parse_cpuinfo(void)
177178
{
178179
time_t currTime = time(NULL);
@@ -278,7 +279,8 @@ int UTIL_countAvailableCores(void)
278279
if (ret == 0) return numLogicalCores;
279280
if (errno != ENOENT) {
280281
perror("zstd: can't get number of Logical cpus");
281-
exit(1);
282+
/* value not queryable, fall back on 1 */
283+
numLogicalCores = 1;
282284
}
283285
/* sysctl not present, fall through to older sysconf method */
284286
}
@@ -317,7 +319,7 @@ int UTIL_countAvailableCores(void)
317319

318320
int UTIL_countAvailableCores(void)
319321
{
320-
/* assume 1 */
322+
/* assume fail-safe 1 */
321323
return 1;
322324
}
323325

tests/base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ def raise_skip(msg):
2727
log.info("libzstd built with legacy formats support: %r"% zstd.ZSTD_legacy_support())
2828
log.info("zstd max number of threads: %r"% zstd.ZSTD_max_threads_count())
2929
log.info("zstd found CPU cores : %r"% zstd.ZSTD_threads_count())
30-
log.info("zstd found CPU cores (call sysconf) : %r"% zstd.ZSTD_cpu_count_sysconf())
31-
log.info("zstd found CPU cores (parse cpuinfo) : %r"% zstd.ZSTD_cpu_count_cpuinfo())
30+
if platform.system() == "Linux":
31+
log.info("zstd found CPU cores (call sysconf) : %r"% zstd.ZSTD_cpu_count_sysconf())
32+
log.info("zstd found CPU cores (parse cpuinfo) : %r"% zstd.ZSTD_cpu_count_cpuinfo())
3233
log.info("zstd default compression level: %r"% zstd.ZSTD_default_compression_level())
3334
log.info("zstd max compression level: %r"% zstd.ZSTD_max_compression_level())
3435
log.info("zstd min compression level: %r"% zstd.ZSTD_min_compression_level())

tests/test_speed.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from.get_memory_usage import get_real_memory_usage
55
from time import time
66
import os
7+
import platform
78

89
class TestZstdSpeed(BaseTestZSTD):
910

@@ -239,7 +240,7 @@ def test_cpu_cores_cache_default_speed(self):
239240

240241
endMemoryUsage=get_real_memory_usage()
241242
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
242-
log.info("Check cache use speed(default) average = %6.2f Ops/sec" % (1.0*ops/wait,))
243+
log.info("Check cpu cores number cache use ttl(default) average = %6.2f Ops/sec" % (1.0*ops/wait,))
243244
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
244245

245246
def test_cpu_cores_cache_none_speed(self):
@@ -258,10 +259,12 @@ def test_cpu_cores_cache_none_speed(self):
258259

259260
endMemoryUsage=get_real_memory_usage()
260261
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
261-
log.info("Check cache use cache(0) and DEFAULT average = %6.2f Ops/sec" % (1.0*ops/wait,))
262+
log.info("Check cpu cores number cache not use cache and DEFAULT average = %6.2f Ops/sec" % (1.0*ops/wait,))
262263
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
263-
264+
264265
def test_cpu_cores_cache_none_sysconf_speed(self):
266+
if platform.system()!='Linux':
267+
raise_skip("non Linux platfom not supported")
265268
wait = 10
266269
if "ZSTD_FULLTIME_TESTS" in os.environ:
267270
wait = 70
@@ -277,11 +280,12 @@ def test_cpu_cores_cache_none_sysconf_speed(self):
277280

278281
endMemoryUsage=get_real_memory_usage()
279282
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
280-
log.info("Check cache use cache(0) and call SYSCONF average = %6.2f Ops/sec" % (1.0*ops/wait,))
283+
log.info("Check cpu cores number cache not use cache and call SYSCONF average = %6.2f Ops/sec" % (1.0*ops/wait,))
281284
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
282-
283285

284286
def test_cpu_cores_cache_none_cpuinfo_speed(self):
287+
if platform.system()!='Linux':
288+
raise_skip("non Linux platfom not supported")
285289
wait = 10
286290
if "ZSTD_FULLTIME_TESTS" in os.environ:
287291
wait = 70
@@ -297,7 +301,7 @@ def test_cpu_cores_cache_none_cpuinfo_speed(self):
297301

298302
endMemoryUsage=get_real_memory_usage()
299303
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
300-
log.info("Check cache use cache(0) and parse CPUINFO average = %6.2f Ops/sec" % (1.0*ops/wait,))
304+
log.info("Check cpu cores numbercache not use cache and parse CPUINFO average = %6.2f Ops/sec" % (1.0*ops/wait,))
301305
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
302306

303307
def test_cpu_cores_cache_60_speed(self):
@@ -315,7 +319,7 @@ def test_cpu_cores_cache_60_speed(self):
315319

316320
endMemoryUsage=get_real_memory_usage()
317321
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
318-
log.info("Check cache use speed(60) average = %6.2f Ops/sec" % (1.0*ops/wait,))
322+
log.info("Check cpu cores number cache use ttl(60 sec) average = %6.2f Ops/sec" % (1.0*ops/wait,))
319323
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
320324

321325
def test_cpu_cores_cache_01_speed(self):
@@ -334,7 +338,7 @@ def test_cpu_cores_cache_01_speed(self):
334338

335339
endMemoryUsage=get_real_memory_usage()
336340
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
337-
log.info("Check cache use speed(1) average = %6.2f Ops/sec" % (1.0*ops/wait,))
341+
log.info("Check cpu cores number cache use ttl(1 sec) average = %6.2f Ops/sec" % (1.0*ops/wait,))
338342
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
339343

340344
def test_cpu_cores_cache_05_speed(self):
@@ -353,7 +357,7 @@ def test_cpu_cores_cache_05_speed(self):
353357

354358
endMemoryUsage=get_real_memory_usage()
355359
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
356-
log.info("Check cache use speed(5) average = %6.2f Ops/sec" % (1.0*ops/wait,))
360+
log.info("Check cpu cores number cache use ttl(5 sec) average = %6.2f Ops/sec" % (1.0*ops/wait,))
357361
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
358362

359363
def test_cpu_cores_cache_10_speed(self):
@@ -372,7 +376,7 @@ def test_cpu_cores_cache_10_speed(self):
372376

373377
endMemoryUsage=get_real_memory_usage()
374378
log.info("end Check memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
375-
log.info("Check cache use speed(10) average = %6.2f Ops/sec" % (1.0*ops/wait,))
379+
log.info("Check cpu cores number cache use ttl(10 sec) average = %6.2f Ops/sec" % (1.0*ops/wait,))
376380
log.info("diff Check memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))
377381

378382
if __name__ == '__main__':

0 commit comments

Comments
 (0)