DPDK patches and discussions
 help / color / mirror / Atom feed
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

  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).