PCC value and communications between FVPs

Hi,

1. I was looking into GDB on cheribsd to extract the value of PCC for a program. I found that for different programs PCC value remained the same. is this some bug?

2.  Do you have any ideas about  communicating between two FVPs running on the same host linux. virtioP9 device should work?

Please could you give some more detailed instructions on this, sorry if I have missed anything obvious in the documentation. 

Thanks,

Parents
  • Hi,

    > 1. I was looking into GDB on cheribsd to extract the value of PCC for a program. I found that for different programs PCC value remained the same. is this some bug?

    In what sense? As far as I know there is no bug here, so GDB will report the correct PCC, whatever that is, which may happen to be the same depending on the programs you're running and where you interrupt execution (e.g. if you break inside libc.so then that's going to be shared between processes so if it's mapped at the same address for both processes then PCC for a given function will be identical between the two). Note that CheriABI binaries don't enable ASLR as it serves no purpose when you already have deterministic full spatial and referential safety.

    > 2. Do you have any ideas about  communicating between two FVPs running on the same host linux. virtioP9 device should work?

    FreeBSD doesn't currently support that. If you want to communicate between them I would suggest using normal TCP/IP (--run-fvp/extra-tcp-forwarding may be of interest). However, I would suggest not trying to do this in the first place. The FVP is very demanding on system resources, and there are few situations where you need to have multiple instances of it. Can your use case be made to work by just having multiple processes on the same instance? That will be a lot faster and a lot simpler to make work.

Reply
  • Hi,

    > 1. I was looking into GDB on cheribsd to extract the value of PCC for a program. I found that for different programs PCC value remained the same. is this some bug?

    In what sense? As far as I know there is no bug here, so GDB will report the correct PCC, whatever that is, which may happen to be the same depending on the programs you're running and where you interrupt execution (e.g. if you break inside libc.so then that's going to be shared between processes so if it's mapped at the same address for both processes then PCC for a given function will be identical between the two). Note that CheriABI binaries don't enable ASLR as it serves no purpose when you already have deterministic full spatial and referential safety.

    > 2. Do you have any ideas about  communicating between two FVPs running on the same host linux. virtioP9 device should work?

    FreeBSD doesn't currently support that. If you want to communicate between them I would suggest using normal TCP/IP (--run-fvp/extra-tcp-forwarding may be of interest). However, I would suggest not trying to do this in the first place. The FVP is very demanding on system resources, and there are few situations where you need to have multiple instances of it. Can your use case be made to work by just having multiple processes on the same instance? That will be a lot faster and a lot simpler to make work.

Children
No data