summaryrefslogtreecommitdiffstats
path: root/usr.bin/sort
diff options
context:
space:
mode:
authorgabor <gabor@FreeBSD.org>2012-12-17 09:36:43 +0000
committergabor <gabor@FreeBSD.org>2012-12-17 09:36:43 +0000
commit85e6a5356933034ffa9dafaca845a06cccff90f1 (patch)
treefe7ec95fbb33c3331d4871eae1a36663c42c84cd /usr.bin/sort
parent6cbba3065468e4f59f13b2b120cb10da28ea7f8d (diff)
downloadFreeBSD-src-85e6a5356933034ffa9dafaca845a06cccff90f1.zip
FreeBSD-src-85e6a5356933034ffa9dafaca845a06cccff90f1.tar.gz
- Use unsigned int for values obtained with sysctlbyname(). This fixes
sparc64 performance problems. Submitted by: Oleg Moskalenko <oleg.moskalenko@citrix.com> Tested by: trasz
Diffstat (limited to 'usr.bin/sort')
-rw-r--r--usr.bin/sort/sort.c11
-rw-r--r--usr.bin/sort/sort.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/usr.bin/sort/sort.c b/usr.bin/sort/sort.c
index 9277de0..2718d64 100644
--- a/usr.bin/sort/sort.c
+++ b/usr.bin/sort/sort.c
@@ -103,7 +103,7 @@ bool debug_sort;
bool need_hint;
#if defined(SORT_THREADS)
-size_t ncpu = 1;
+unsigned int ncpu = 1;
size_t nthreads = 1;
#endif
@@ -268,14 +268,16 @@ set_hw_params(void)
#if defined(SORT_THREADS)
size_t ncpusz;
#endif
- size_t pages, psize, psz, pszsz;
+ unsigned int pages, psize;
+ size_t psz, pszsz;
pages = psize = 0;
#if defined(SORT_THREADS)
ncpu = 1;
ncpusz = sizeof(size_t);
#endif
- psz = pszsz = sizeof(size_t);
+ psz = sizeof(pages);
+ pszsz = sizeof(psize);
if (sysctlbyname("vm.stats.vm.v_free_count", &pages, &psz,
NULL, 0) < 0) {
@@ -299,6 +301,9 @@ set_hw_params(void)
free_memory = (unsigned long long) pages * (unsigned long long) psize;
available_free_memory = (free_memory * 9) / 10;
+
+ if (available_free_memory < 1024)
+ available_free_memory = 1024;
}
/*
diff --git a/usr.bin/sort/sort.h b/usr.bin/sort/sort.h
index f5b48bd..a37f922 100644
--- a/usr.bin/sort/sort.h
+++ b/usr.bin/sort/sort.h
@@ -54,7 +54,7 @@ extern const char *nlsstr[];
#if defined(SORT_THREADS)
#define MT_SORT_THRESHOLD (10000)
-extern size_t ncpu;
+extern unsigned int ncpu;
extern size_t nthreads;
#endif
OpenPOWER on IntegriCloud