Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
187c902b7a | ||
|
|
ec7e75e105 | ||
|
|
dcc77408c0 | ||
|
|
31ec0f67e0 | ||
|
|
042c839751 | ||
|
|
920092333f | ||
|
|
913cfe3726 | ||
|
|
7e5cbcde9c | ||
|
|
36aad77a87 | ||
|
|
c48328324c |
@@ -175,5 +175,5 @@ jobs:
|
|||||||
release/SHA256SUMS \
|
release/SHA256SUMS \
|
||||||
--repo "$GITHUB_REPOSITORY" \
|
--repo "$GITHUB_REPOSITORY" \
|
||||||
--title "Release $RELEASE_TAG" \
|
--title "Release $RELEASE_TAG" \
|
||||||
--notes "Fixed x86/Linux builds on systems without OpenSSL development headers. Result uploads now use plain HTTP on every platform, removing the OpenSSL build and runtime dependency." \
|
--notes "Removed CPU telemetry (background temperature and clock speed sampling during benchmark runs). It relied on undocumented, OS-specific interfaces (raw AppleSMC keys on macOS, WMI ACPI thermal zones on Windows, /sys/class/thermal and /sys/class/hwmon on Linux) that proved unstable and inconsistent across operating systems and hardware, and live per-core clock speed was never obtainable on macOS at all through any public API. Rather than ship telemetry data that can silently jump between physical sensors mid-run or simply not exist on a given platform, this release disables the feature entirely: fossbench.net no longer accepts or displays it, and the client no longer collects it. The one-time background system-activity check (CPU/memory/process sampling before a run) is unaffected and still available via --no-system-check." \
|
||||||
--generate-notes
|
--generate-notes
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@
|
|||||||
#ifndef FB_API_BASE_URL
|
#ifndef FB_API_BASE_URL
|
||||||
# define FB_API_BASE_URL "http://fossbench.net"
|
# define FB_API_BASE_URL "http://fossbench.net"
|
||||||
#endif
|
#endif
|
||||||
#define FB_VERSION "0.4.0"
|
#define FB_VERSION "0.4.2"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Native Integer Math and Memory Bandwidth are the only two *measured*
|
* Native Integer Math and Memory Bandwidth are the only two *measured*
|
||||||
@@ -167,7 +167,7 @@ extern uint64_t fb_c_chase(void **ptrs, uint64_t steps);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MIN_SECONDS
|
#ifndef MIN_SECONDS
|
||||||
# define MIN_SECONDS 2.0 /* Minimum run time. */
|
# define MIN_SECONDS 0.4 /* Minimum run time. */
|
||||||
#endif
|
#endif
|
||||||
#ifndef REPEATS
|
#ifndef REPEATS
|
||||||
# define REPEATS 3 /* Number of tries. */
|
# define REPEATS 3 /* Number of tries. */
|
||||||
|
|||||||
+15
-2
@@ -294,18 +294,31 @@ static int read_first_property(const char *path, char *dst, size_t cap)
|
|||||||
* by GetLogicalProcessorInformationEx describes exactly one physical core. */
|
* by GetLogicalProcessorInformationEx describes exactly one physical core. */
|
||||||
static long win_physical_cores(void)
|
static long win_physical_cores(void)
|
||||||
{
|
{
|
||||||
|
typedef BOOL (WINAPI *get_logical_processor_information_ex_fn)(
|
||||||
|
LOGICAL_PROCESSOR_RELATIONSHIP,
|
||||||
|
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, PDWORD);
|
||||||
|
get_logical_processor_information_ex_fn get_topology;
|
||||||
|
HMODULE kernel32;
|
||||||
DWORD length = 0;
|
DWORD length = 0;
|
||||||
BYTE *buffer, *p;
|
BYTE *buffer, *p;
|
||||||
long cores = 0;
|
long cores = 0;
|
||||||
|
|
||||||
if (GetLogicalProcessorInformationEx(RelationProcessorCore, NULL, &length))
|
/* This API is unavailable on Windows XP. Resolve it dynamically so the
|
||||||
|
* i386 compatibility build does not acquire a newer kernel32 import. */
|
||||||
|
kernel32 = GetModuleHandleA("kernel32.dll");
|
||||||
|
get_topology = kernel32 == NULL ? NULL :
|
||||||
|
(get_logical_processor_information_ex_fn)(uintptr_t)
|
||||||
|
GetProcAddress(kernel32, "GetLogicalProcessorInformationEx");
|
||||||
|
if (get_topology == NULL)
|
||||||
|
return 0;
|
||||||
|
if (get_topology(RelationProcessorCore, NULL, &length))
|
||||||
return 0;
|
return 0;
|
||||||
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER || length == 0)
|
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER || length == 0)
|
||||||
return 0;
|
return 0;
|
||||||
buffer = malloc(length);
|
buffer = malloc(length);
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
if (GetLogicalProcessorInformationEx(RelationProcessorCore,
|
if (get_topology(RelationProcessorCore,
|
||||||
(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX)buffer, &length)) {
|
(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX)buffer, &length)) {
|
||||||
for (p = buffer; p < buffer + length; ) {
|
for (p = buffer; p < buffer + length; ) {
|
||||||
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX record =
|
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX record =
|
||||||
|
|||||||
+3
-3
@@ -159,13 +159,13 @@ static int upload_results(const struct system_info *info,
|
|||||||
const struct result *real_single, uint64_t duration_ms,
|
const struct result *real_single, uint64_t duration_ms,
|
||||||
const struct background_metrics *background)
|
const struct background_metrics *background)
|
||||||
{
|
{
|
||||||
char host[256], port[16], path[512], payload[32768];
|
char host[256], port[16], path[512], payload[131072];
|
||||||
char auth_header[600], response_body[2048], claim_url[1024], result_url[1024];
|
char auth_header[600], response_body[2048], claim_url[1024], result_url[1024];
|
||||||
char cpu[512], model[512], os[512], compiler[256], kernel[256];
|
char cpu[512], model[512], os[512], compiler[256], kernel[256];
|
||||||
const char *base = FB_API_BASE_URL, *p, *slash, *colon;
|
const char *base = FB_API_BASE_URL, *p, *slash, *colon;
|
||||||
int status = 0, payload_len;
|
int status = 0, payload_len;
|
||||||
#if !defined(_WIN32)
|
#if !defined(_WIN32)
|
||||||
char request[40000], response[4096];
|
char request[140000], response[4096];
|
||||||
struct addrinfo hints, *addresses = NULL, *a;
|
struct addrinfo hints, *addresses = NULL, *a;
|
||||||
int fd = -1, request_len;
|
int fd = -1, request_len;
|
||||||
#endif
|
#endif
|
||||||
@@ -224,7 +224,7 @@ static int upload_results(const struct system_info *info,
|
|||||||
if (n < 0 || (size_t)n >= sizeof payload - used) return 0;
|
if (n < 0 || (size_t)n >= sizeof payload - used) return 0;
|
||||||
used += (size_t)n;
|
used += (size_t)n;
|
||||||
if (!append_result_tests(payload, sizeof payload, &used, real_multi, real_single)) return 0;
|
if (!append_result_tests(payload, sizeof payload, &used, real_multi, real_single)) return 0;
|
||||||
if (used + 3 >= sizeof payload) return 0;
|
if (used + 4 >= sizeof payload) return 0;
|
||||||
memcpy(payload + used, "]}}", 4);
|
memcpy(payload + used, "]}}", 4);
|
||||||
payload_len = (int)(used + 3);
|
payload_len = (int)(used + 3);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user