From: Santosh Shukla <sshukla@mvista.com>
To: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v5 10/11] virtio: pci: add dummy func definition for in/outb for non-x86 arch
Date: Fri, 29 Jan 2016 13:01:02 +0530 [thread overview]
Message-ID: <CAAyOgsaKjR8O3eMNA8vnVNGpqyjO14UH1hCzgQkeWwQ2=3Z7Sw@mail.gmail.com> (raw)
In-Reply-To: <20160129070112.GO4257@yliu-dev.sh.intel.com>
On Fri, Jan 29, 2016 at 12:31 PM, Yuanhan Liu
<yuanhan.liu@linux.intel.com> wrote:
> On Tue, Jan 19, 2016 at 05:16:11PM +0530, Santosh Shukla wrote:
>> For non-x86 arch, Compiler will throw build error for in/out apis. Including
>> dummy api function so to pass build.
>>
>> Note that: For virtio to work for non-x86 arch - RTE_EAL_VFIO is the only
>> supported method. RTE_EAL_IGB_UIO is not supported for non-x86 arch.
>>
>> So, Virtio support for arch and supported interface by that arch:
>>
>> ARCH IGB_UIO VFIO
>> x86 Y Y
>> ARM64 N/A Y
>> PPC_64 N/A Y (Not tested but likely should work, as vfio is
>> arch independent)
>>
>> Note: Applicable for virtio spec 0.95
>>
>> Signed-off-by: Santosh Shukla <sshukla@mvista.com>
>> ---
>> drivers/net/virtio/virtio_pci.h | 46 +++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 46 insertions(+)
>>
>> diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
>> index f550d22..b88f9ec 100644
>> --- a/drivers/net/virtio/virtio_pci.h
>> +++ b/drivers/net/virtio/virtio_pci.h
>> @@ -46,6 +46,7 @@
>> #endif
>>
>> #include <rte_ethdev.h>
>> +#include "virtio_logs.h"
>>
>> struct virtqueue;
>>
>> @@ -320,6 +321,51 @@ outl_p(unsigned int data, unsigned int port)
>> }
>> #endif
>>
>> +#if !defined(RTE_ARCH_X86_64) && !defined(RTE_ARCH_I686) && \
>> + defined(RTE_EXEC_ENV_LINUXAPP)
>> +static inline uint8_t
>> +inb(unsigned long addr __rte_unused)
>> +{
>> + PMD_INIT_LOG(ERR, "inb() not supported for this RTE_ARCH\n");
>> + return 0;
>> +}
>
> The whole port read/write stuff is getting messy here: we not only have
> to care the FreeBSD and Linux difference, but also the x86 and non-x86
> difference. And you just added yet another vfio layer.
>
> First of all, they are not belong here (virtio_pci.h). A new place like
> virtio_io.h sounds much better to me. Therefore, I'd suggest you to
> put all those stuff there, like the one I have just cooked up:
>
>
> #ifndef __VIRTIO_IO_H__
>
> #if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686)
>
> #ifdef __FreeBSD__
> #include <sys/types.h>
> #include <machine/cpufunc.h>
>
> #define outb_p outb
> #define outw_p outw
> #define outl_p outl
> #else
> #include <sys/io.h>
> #endif
>
> #else /* ! X86 */
>
> static inline uint8_t
> inb(unsigned long addr __rte_unused)
> {
> PMD_INIT_LOG(ERR, "inb() not supported for this RTE_ARCH\n");
> return 0;
> }
>
>
> ....
> #endif /* X86 */
>
>
> /* And put the vfio io port read/write here */
>
> #endif /* __VIRTIO_IO_H__ */
>
> Note that you may need squash patch 4 (build fix for sys/io.h ...)
> here. They both resolve one thing: to make it build on non-x86 platforms.
>
> Another minor note is that while you are trying this way, I'd suggest
> you to make a patch to introduce virtio_io.h, and then make another
> patch to fix build errors on non-x86 platforms.
>
Ok.
> Another generic comment about this patchset is that it VERY okay to
> include several components change in one set, but putting them in
> order helps review a lot.
>
> Say, this patch set has dependence on VFIO stuff, therefore, it'd be
> much better __IF__ you can put all VFIO related patches first, and
> then virtio related patches follows, but not in an interleaved way
> you did. If, for somereason, you can't do that, you should at least
> try to minimise the chance of interleave.
>
I agree that, but this patch series dependent on other patches
including virtio 1.0 and then vfio-noiommu, its was difficult for me
to keep topic-wise sanity in patch series.
V6 will take care patch ordering. Thanks
> --yliu
next prev parent reply other threads:[~2016-01-29 7:31 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-19 11:46 [dpdk-dev] [PATCH v5 00/11] Add virtio support for arm/arm64 Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 01/11] virtio: Introduce config RTE_VIRTIO_INC_VECTOR Santosh Shukla
2016-01-27 2:23 ` Santosh Shukla
2016-01-27 2:33 ` Yuanhan Liu
2016-01-29 4:32 ` Santosh Shukla
2016-01-29 4:42 ` Yuanhan Liu
2016-01-29 4:45 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 02/11] linuxapp: eal: arm: Always return 0 for rte_eal_iopl_init() Santosh Shukla
2016-01-21 9:41 ` David Marchand
2016-01-21 10:07 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 03/11] linuxapp/vfio: ignore mapping for ioport region Santosh Shukla
2016-01-27 2:24 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 04/11] virtio_pci.h: build fix for sys/io.h for non-x86 arch Santosh Shukla
2016-01-27 2:25 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 05/11] eal: pci: vfio: add rd/wr func for pci bar space Santosh Shukla
2016-01-21 9:42 ` David Marchand
2016-01-21 10:08 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 06/11] virtio: vfio: add api support to rd/wr ioport bar Santosh Shukla
2016-01-29 7:07 ` Yuanhan Liu
2016-01-29 7:16 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 07/11] virtio: pci: extend virtio pci rw api for vfio interface Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 08/11] eal: pci: introduce RTE_KDRV_VFIO_NOIOMMUi driver mode Santosh Shukla
2016-01-19 14:18 ` Burakov, Anatoly
2016-01-19 18:36 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 09/11] virtio_pci: do not parse if interface is vfio-noiommu Santosh Shukla
2016-01-29 7:17 ` Yuanhan Liu
2016-01-29 7:22 ` Santosh Shukla
2016-01-29 7:34 ` Yuanhan Liu
2016-01-29 9:02 ` Thomas Monjalon
2016-01-29 9:14 ` Yuanhan Liu
2016-01-29 9:16 ` Santosh Shukla
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 10/11] virtio: pci: add dummy func definition for in/outb for non-x86 arch Santosh Shukla
2016-01-27 10:37 ` Santosh Shukla
2016-01-29 7:01 ` Yuanhan Liu
2016-01-29 7:31 ` Santosh Shukla [this message]
2016-01-29 7:38 ` Yuanhan Liu
2016-01-19 11:46 ` [dpdk-dev] [PATCH v5 11/11] vfio: Support for no-IOMMU mode Santosh Shukla
2016-01-25 7:25 ` [dpdk-dev] [PATCH v5 00/11] Add virtio support for arm/arm64 Santosh Shukla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAAyOgsaKjR8O3eMNA8vnVNGpqyjO14UH1hCzgQkeWwQ2=3Z7Sw@mail.gmail.com' \
--to=sshukla@mvista.com \
--cc=dev@dpdk.org \
--cc=yuanhan.liu@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).