[dpdk-dev] [PATCH v1 2/2] virtio: Extend virtio-net PMD to support container environment

Tetsuya Mukawa mukawa at igel.co.jp
Wed Jan 6 04:57:07 CET 2016


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



More information about the dev mailing list