Hello Everyone,

I am Roy, and this is my progress report on what I have been doing over the
past week.

First, I replaced the read operation previously used by the guest_ivshmem
character device with an mmap operation. This allows the IVSHMEM pages to
be directly mapped into guest userspace, avoiding a read/pread system call
every time the phantom average is accessed.

I then adapted the libgomp implementation and tests to use this new mmap-based
interface.

I also replaced the earlier uprobe-based approach for tracking internal
libgomp functions with USDT (Userspace Statically Defined Tracing) probes.
This provides a more stable interface for the Phantom Tracker eBPF programs
and avoids requiring libgomp to export internal function symbols solely for
tracing purposes.

I then updated the Phantom Tracker eBPF programs, as well as the related
eBPF test programs, to attach to these USDT probes.

I also carried out tests of the complete setup to verify that the modified
libgomp, Phantom Tracker, and the new IVSHMEM interface work correctly
together.

Finally, I carried out the required benchmark tests using the OpenMP
version of the NAS Parallel Benchmarks (NPB) 3.4.4,

I am currently thinking about how to incorporate a shared metadata section
for all VMs, together with a registration mechanism that can dynamically
allocate the appropriate IVSHMEM region for a given VM.

Best Regards,
Nchang Roy

Reply via email to