Git Product home page Git Product logo

ivshmem-guest-code's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ivshmem-guest-code's Issues

suport msi when using standard ivshmem driver

###kvm_ivshmem.c
static irqreturn_t kvm_ivshmem_interrupt (int irq, void *dev_instance)
{
struct kvm_ivshmem_device * dev = dev_instance;
u32 status;

if (unlikely(dev == NULL))
	return IRQ_NONE;

status = readl(dev->regs + IntrStatus);
if (!status || (status == 0xFFFFFFFF))
	return IRQ_NONE;

.........
}

I found the same interrupt handle is defined no matter what msi and pin. when a interrupt is coming , kvm_ivshmem_interrupt will Determine if the interrupt actually occurred by intrStatus.but msi does not use intrStatus. if it is msi , interrupt handle will not respose it

Using ivshmem_server and starting a vm guest

I started ivshmem_server after compiling as
make
./ivshmem_server

Then I started my vm guest using (using ubuntu 16.04 lts as image)

qemu-system-x86_64 -enable-kvm -smp 2 -m 1024 -drive file=ubuntu.img,cache=writeback -chardev socket,path=/tmp/ivshmem_socket,id=ivshmemid -device ivshmem,chardev=ivshmemid,size=1,msi=off

It throws this error -
incompatible version, you are connecting to a ivshmem-server using a different protocol please check your setup

How to resolve this?
Are there any groups/forums where I can ask all these doubts?

How to handle multiple read and write when using ivshmem on the same shm

I wanted to know if this handles the functionality that in the shared memory region there can be the problem of multiple read and write.

How to provide the functionality of dividing shared memory region into regions for each VM and then have communication between different VMs?
In your thesis there is a proposal that we can use VM ids as an offset for separate memory regions.I just wanted to know if that has been implemented and if not any suggestion in that direction will be welcome.

kvm_ivshmem/uio_ivshmem support

Hello,

I know it's been a while now but i am very interested in this work.
I have been searching for a way for a communication through shared memory between minimal VMs that only contain a preconfigured Linux and an agent with execution runtime.
Therefore, your work here sounded really related to my research and it would be great if you can help me answer some of my concernings:
1- is there an interface or a library to use your uio_ivshmem kernel module in VMs with preconfigured minimal Linux?
2- is it necessary for the extra doorbell server to enable multiple VMs to communicate through a specific shared memory?

Unfortunately, i couldn't find any support or usefull examples for the qemu ivshmem feature and it seems to be deprecated and/or not completely supported anymore. The DPDK remove the ivshmem library after DPDK version 16.04.

Thanks again and hope to hear from you soon :)
Best regards

Typo in ivshmem-guest-code/tests/Interrupts/VM/getident.c

In this file ivshmem-guest-code/tests/Interrupts/VM/getident.c

In main()
if (argc < 3) {
fprintf(stderr, "USAGE: guestlock <ioctl_arg>\n");
ivshmem_print_opts();
exit(-1);
}
In fprintf() at line 26 it should be USAGE: getident ..... instead of guestlock
Please check

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.