On 2015/12/28 20:57, Pavel Fedin wrote: > Hello! > >> diff --git a/drivers/net/virtio/virtio_pci.h >> b/drivers/net/virtio/virtio_pci.h >> index 47f722a..d4ede73 100644 >> --- a/drivers/net/virtio/virtio_pci.h >> +++ b/drivers/net/virtio/virtio_pci.h >> @@ -165,6 +165,9 @@ struct virtqueue; >> >> struct virtio_hw { >> struct virtqueue *cvq; >> +#ifdef RTE_LIBRTE_VIRTIO_HOST_MODE >> + void *qsession; >> +#endif >> uint32_t io_base; >> uint32_t guest_features; >> uint32_t max_tx_queues; >> @@ -226,6 +229,26 @@ outl_p(unsigned int data, unsigned int port) >> } >> #endif >> >> +#ifdef RTE_LIBRTE_VIRTIO_HOST_MODE >> + >> +uint32_t virtio_ioport_read(struct virtio_hw *, uint64_t, char type); >> +void virtio_ioport_write(struct virtio_hw *, uint64_t, uint64_t, char type); >> + >> +#define VIRTIO_READ_REG_1(hw, reg) \ >> + virtio_ioport_read(hw, reg, 'b') >> +#define VIRTIO_WRITE_REG_1(hw, reg, value) \ >> + virtio_ioport_write(hw, reg, value, 'b') >> +#define VIRTIO_READ_REG_2(hw, reg) \ >> + virtio_ioport_read(hw, reg, 'w') >> +#define VIRTIO_WRITE_REG_2(hw, reg, value) \ >> + virtio_ioport_write(hw, reg, value, 'w') >> +#define VIRTIO_READ_REG_4(hw, reg) \ >> + virtio_ioport_read(hw, reg, 'l') >> +#define VIRTIO_WRITE_REG_4(hw, reg, value) \ >> + virtio_ioport_write(hw, reg, value, 'l') >> + >> +#else /* RTE_LIBRTE_VIRTIO_HOST_MODE */ >> + > I have a concern against such compile-time switches. What if we want the > same code to work for both 'real' virtio and socket-based? > Shouldn't we introduce some function pointers here to be able to switch them > at runtime?
Hi Pavel, Thanks for commenting. In that case, you will run QEMU, then create containers in the guest. Do you have an use case for this usage? Anyway, such a feature depends on how to allocate share memory. So far, this patch allow you to run both virtio-net 'real' and 'virtual' PMDs on guest, but it will be changed to remove contiguous memory restriction. Could you please see an other thread that we talk about the restriction in? (I will add you to CC.) Thanks, Tetsuya