Skip to content

Commit dca3221

Browse files
committed
Merge remote-tracking branch 'opcm-github/master'
Change-Id: I18f0bbe2f7ac88c0c6a3674355913df9a008023e
2 parents d62b995 + 53c0066 commit dca3221

3 files changed

Lines changed: 27 additions & 5 deletions

File tree

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM fedora:42@sha256:ee88ab8a5c8bf78687ddcecadf824767e845adc19d8cdedb56f48521eb162b43 AS builder
1+
FROM fedora:43@sha256:6cd815d862109208adf6040ea13391fe6aeb87a9dc80735c2ab07083fdf5e03a AS builder
22
# Dockerfile for Intel PCM sensor server
33
# SPDX-License-Identifier: BSD-3-Clause
44
# Copyright (c) 2020-2024 Intel Corporation
@@ -7,7 +7,7 @@ RUN dnf -y install gcc-c++ git findutils make cmake openssl openssl-devel libasa
77
COPY . /tmp/pcm
88
RUN cd /tmp/pcm && mkdir build && cd build && cmake -DPCM_NO_STATIC_LIBASAN=OFF .. && make -j
99

10-
FROM fedora:42@sha256:ee88ab8a5c8bf78687ddcecadf824767e845adc19d8cdedb56f48521eb162b43
10+
FROM fedora:43@sha256:6cd815d862109208adf6040ea13391fe6aeb87a9dc80735c2ab07083fdf5e03a
1111
COPY --from=builder /tmp/pcm/build/bin/* /usr/local/bin/
1212
COPY --from=builder /tmp/pcm/build/bin/opCode*.txt /usr/local/share/pcm/
1313
COPY --from=builder /usr/share/hwdata/pci.ids /usr/share/hwdata/pci.ids

src/MacMSRDriver/PcmMsr/CMakeLists.txt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,24 @@ add_executable(
1111

1212
set_target_properties(PcmMsrDriver PROPERTIES BUNDLE_EXTENSION kext MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/PcmMsr-Info.plist)
1313

14+
# For KEXT compilation on macOS, we must explicitly point to the Kernel frameworks within the SDK.
15+
if(APPLE)
16+
# Find the active macOS SDK path
17+
execute_process(
18+
COMMAND xcrun --sdk macosx --show-sdk-path
19+
OUTPUT_VARIABLE MACOSX_SDK_PATH
20+
OUTPUT_STRIP_TRAILING_WHITESPACE
21+
RESULT_VARIABLE XCRUN_RESULT
22+
)
23+
if(NOT XCRUN_RESULT EQUAL 0 OR NOT MACOSX_SDK_PATH)
24+
message(FATAL_ERROR "Failed to find macOS SDK path using xcrun")
25+
endif()
26+
message(STATUS "Using SDK for KEXT: ${MACOSX_SDK_PATH}")
27+
endif()
1428

1529
target_include_directories(PcmMsrDriver PRIVATE
16-
${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/Kernel.framework/PrivateHeaders
17-
${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/Kernel.framework/Headers
30+
"${MACOSX_SDK_PATH}/System/Library/Frameworks/Kernel.framework/PrivateHeaders"
31+
"${MACOSX_SDK_PATH}/System/Library/Frameworks/Kernel.framework/Headers"
1832
)
1933
target_compile_definitions(PcmMsrDriver PRIVATE
2034
-DKERNEL

src/topologyentry.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,17 @@ struct PCM_API TopologyEntry // describes a core
116116

117117
inline void fillEntry(TopologyEntry & entry, const uint32 & smtMaskWidth, const uint32 & coreMaskWidth, const uint32 & l2CacheMaskShift, const int apic_id)
118118
{
119+
#ifndef USER_KERNEL_SHARED
119120
DBG(1, "entry.os_id = ", entry.os_id, " apic_id = ", apic_id);
121+
#endif
120122
entry.thread_id = smtMaskWidth ? extract_bits_32(apic_id, 0, smtMaskWidth - 1) : 0;
121123
entry.core_id = coreMaskWidth ? extract_bits_32(apic_id, smtMaskWidth, smtMaskWidth + coreMaskWidth - 1) : 0;
122124
entry.socket_id = extract_bits_32(apic_id, smtMaskWidth + coreMaskWidth, 31);
123125
entry.tile_id = extract_bits_32(apic_id, l2CacheMaskShift, 31);
124126
entry.socket_unique_core_id = entry.core_id;
127+
#ifndef USER_KERNEL_SHARED
125128
DBG(1, "entry.os_id = ", entry.os_id, " apic_id = ", apic_id, " entry.thread_id = ", entry.thread_id, " entry.core_id = ", entry.core_id, " entry.socket_id = ", entry.socket_id , " entry.tile_id = ", entry.tile_id, " entry.socket_unique_core_id = ", entry.socket_unique_core_id);
129+
#endif
126130
}
127131

128132
inline bool initCoreMasks(uint32 & smtMaskWidth, uint32 & coreMaskWidth, uint32 & l2CacheMaskShift, uint32 & l3CacheMaskShift)
@@ -145,7 +149,9 @@ inline bool initCoreMasks(uint32 & smtMaskWidth, uint32 & coreMaskWidth, uint32
145149
}
146150
levelType = extract_bits_32(cpuid_args.array[2], 8, 15);
147151
levelShift = extract_bits_32(cpuid_args.array[0], 0, 4);
148-
DBG(1, "levelType = ", levelType, " levelShift = ", levelShift);
152+
#ifndef USER_KERNEL_SHARED
153+
DBG(1, "levelType = ", levelType, " levelShift = ", levelShift);
154+
#endif
149155
switch (levelType)
150156
{
151157
case 1: //level type is SMT, so levelShift is the SMT_Mask_Width
@@ -254,7 +260,9 @@ inline bool initCoreMasks(uint32 & smtMaskWidth, uint32 & coreMaskWidth, uint32
254260
}
255261
#endif
256262
}
263+
#ifndef USER_KERNEL_SHARED
257264
DBG(1, "smtMaskWidth = ", smtMaskWidth, " coreMaskWidth = ", coreMaskWidth, " l2CacheMaskShift = ", l2CacheMaskShift, " l3CacheMaskShift = ", l3CacheMaskShift);
265+
#endif
258266
return true;
259267
}
260268

0 commit comments

Comments
 (0)