Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,19 @@
#CFLAGS_msr_batch.o := -DDEBUG
#CFLAGS_msr-smp.o := -DDEBUG

KERNELVER ?= $(shell uname -r)

obj-m += msr-safe.o
msr-safe-objs := msr_entry.o msr_allowlist.o msr-smp.o msr_batch.o msr_version.o

all: msrsave/msrsave
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
all: module msrsave/msrsave
make -C /lib/modules/$(KERNELVER)/build M=$(PWD) modules

module:
make -C /lib/modules/$(KERNELVER)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
make -C /lib/modules/$(KERNELVER)/build M=$(PWD) clean
rm -f msrsave/msrsave.o msrsave/msrsave msrsave/msrsave_test msrsave/spank_msrsafe.o msrsave/libspank_msrsafe.so

check: msrsave/msrsave_test
Expand Down Expand Up @@ -84,4 +89,4 @@ spack-install:
$(INSTALL) msr_safe.h $(DESTDIR)/include

.SUFFIXES: .c .o
.PHONY: all clean install spank install-spank
.PHONY: all module clean install spank install-spank
46 changes: 45 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ cd msr-safe
make
sudo insmod ./msr-safe.ko
sudo chmod g+rw /dev/cpu/*/msr_safe /dev/cpu/msr_*
sudo chgrp msr-user /dev/cpu/*/msr_safe /dev/cpu/msr_batch /dev/cpu/msr_version
sudo chgrp msr-user /dev/cpu/*/msr_safe /dev/cpu/msr_batch /dev/cpu/msr_safe_version
sudo chgrp msr-admin /dev/cpu/msr_allowlist
```

Expand All @@ -54,6 +54,50 @@ Use **rmmod(8)** to unload msr-safe.
sudo rmmod msr-safe
```

# DKMS

Copy or clone the repo into /usr/src as the specific directory `msr-safe-git`

```console
$ sudo git clone https://github.com/LLNL/msr-safe /usr/src/msr-safe-git
```

Than add it to DKMS:

```console
$ sudo dkms add -m msr-safe -v git
```

Try to build and install it:

```console
$ sudo dkms build -m msr-safe -v git
$ sudo dkms install -m msr-safe -v git
```

Remove it with:

```console
$ sudo dkms remove -m msr-safe -v git --all
```

# Udev

Rules to adjust permissions on the device files and restore default allowlist:

```console
$ cat <<EOR | sudo tee /etc/udev/rules.d/99-msr_safe.rules >/dev/null
# Rules to adjust group and permission for all device files.
SUBSYSTEM=="msr_safe", ACTION=="add", GROUP="msr-user", MODE="0660"
SUBSYSTEM=="msr_batch", ACTION=="add", GROUP="msr-user", MODE="0660"
SUBSYSTEM=="msr_safe_version", ACTION=="add", GROUP="msr-user", MODE="0440"
SUBSYSTEM=="msr_allowlist", ACTION=="add", GROUP="msr-admin", MODE="0660"

# Restore default allowlist
SUBSYSTEM=="msr_allowlist", ACTION=="add", RUN+="/bin/sh -c 'cat /etc/msr-safe/default_allowlist >/dev/cpu/msr_allowlist'"
EOR
```

# DESCRIPTION
## /dev/cpu/msr_allowlist

Expand Down
6 changes: 6 additions & 0 deletions dkms.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
PACKAGE_NAME="msr-safe"
PACKAGE_VERSION="git"
MAKE[0]="KERNELVER=$kernelver make module"
BUILT_MODULE_NAME[0]="msr-safe"
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
Loading