From 01638947a13e1be210cc0afc8b61294f4e72fe59 Mon Sep 17 00:00:00 2001 From: Lubos Dolezel Date: Tue, 11 Apr 2017 16:38:26 +0200 Subject: [PATCH] Our new libdispatch doesn't crash immediately --- src/external/libdispatch | 2 +- src/startup/commpage.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/external/libdispatch b/src/external/libdispatch index 1eae25267..16643d3d9 160000 --- a/src/external/libdispatch +++ b/src/external/libdispatch @@ -1 +1 @@ -Subproject commit 1eae25267f6257e74240ae2a880f0983d497b54e +Subproject commit 16643d3d99eb3d17db35b790277b102675eaab53 diff --git a/src/startup/commpage.c b/src/startup/commpage.c index 002a19600..06c0207c3 100644 --- a/src/startup/commpage.c +++ b/src/startup/commpage.c @@ -28,6 +28,7 @@ void commpage_setup(bool _64bit) char* signature; uint64_t my_caps; uint8_t *ncpus, *nactivecpus; + uint8_t *physcpus, *logcpus; struct sysinfo si; commpage = (uint8_t*) mmap((void*)(_64bit ? _COMM_PAGE64_BASE_ADDRESS : _COMM_PAGE32_BASE_ADDRESS), @@ -52,6 +53,11 @@ void commpage_setup(bool _64bit) nactivecpus = (uint8_t*)CGET(_COMM_PAGE_ACTIVE_CPUS); *nactivecpus = sysconf(_SC_NPROCESSORS_ONLN); + // Better imprecise information than no information + physcpus = (uint8_t*)CGET(_COMM_PAGE_PHYSICAL_CPUS); + logcpus = (uint8_t*)CGET(_COMM_PAGE_LOGICAL_CPUS); + *physcpus = *logcpus = *ncpus; + my_caps = get_cpu_caps(); if (*ncpus == 1) my_caps |= kUP; -- 2.51.2