Hello,

I'm interested in extending the ptlcalls mechanism so it works inside of
the Linux kernel. In particular, I'd like to be able to perform
ptlcall_log() operations and my own ptlcall_hybridsim() extension (see
bottom of this file:
https://github.com/jimstevens2001/marss.hybridsim/blob/marss.hybridsim/ptlsim/tools/ptlcalls.h)
based on decisions made by the Linux scheduler (e.g. when a context switch
occurs) and virtual memory subsystems (e.g. when a page is deallocated).
My first question is: has anyone attempted to make ptlcalls work in the
kernel before?

I've studied the ptlcalls.h code and see that it uses the CPUID
instruction with a magic value to extract the physical address for MMIO
from rdx and rcx. However, the problem I see is that this code uses lots
of user level infrastructure such as opening /dev/mem with mmap() to
create a virtual address pointer to the page.

Since I only have a very limited use case (e.g. I don't care about
checkpointing, core dumps, or other things ptlcalls are capable of), would
it be easier to just start from scratch and make a very limited version of
ptlcalls_kernel.h that can only call the ptlcalls I need? I was thinking I
could just hardcode the physical address since I won't have or need a
virtual pointer to it in the kernel. The ptlcall_do_mmio() function looks
pretty easy to port to kernel mode and I think that is all I'll really
need (beyond the wrapper functions to implement ptlcall_log and
ptlcall_hybridsim).

Anyways, I'd appreciate any suggestions from the Binghamton guys about how
you'd go about doing this.

Thanks,

Jim Stevens


_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to