From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v2 5/7] eal/linux: mmap ioports on ppc64 Date: Wed, 15 Jun 2016 18:13:57 +0200 Message-ID: <4237718.8Pd8NFPdGz@xps13> References: <1463143859-3105-1-git-send-email-olivier.matz@6wind.com> <20160524051552.GQ5641@yliu-dev.sh.intel.com> <574BFDB4.9030109@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Cc: David Marchand , dev@dpdk.org, Chao Zhu , "Xie, Huawei" , Panu Matilainen To: Olivier Matz , Yuanhan Liu Return-path: Received: from mail-lf0-f51.google.com (mail-lf0-f51.google.com [209.85.215.51]) by dpdk.org (Postfix) with ESMTP id 9D79ECB90 for ; Wed, 15 Jun 2016 18:14:00 +0200 (CEST) Received: by mail-lf0-f51.google.com with SMTP id q132so19163603lfe.3 for ; Wed, 15 Jun 2016 09:14:00 -0700 (PDT) In-Reply-To: <574BFDB4.9030109@6wind.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2016-05-30 10:45, Olivier Matz: > On 05/24/2016 07:15 AM, Yuanhan Liu wrote: > > On Mon, May 23, 2016 at 03:40:58PM +0200, Olivier Matz wrote: > >> For reference, here is the report of the ABI checker for EAL: > >> > >> [=E2=88=92] struct rte_pci_ioport (2) > >> > >> 1 Field len has been added to this type. > >> 1) This field will not be initialized by old clients. > >> 2) Size of the inclusive type has been changed. > >> NOTE: this field should be accessed only from the new librar= y > >> functions, otherwise it may result in crash or incorrect beh= avior > >> of applications. > >> 2 Size of this type has been changed from 16 bytes to 24 bytes. =09= > >> The fields or parameters of such data type may be incorrectly > >> initialized or accessed by old client applications. > >> > >> [=E2=88=92] affected symbols (4) > >> rte_eal_pci_ioport_map ( struct rte_pci_device* dev, int bar, > >> struct rte_pci_ioport* p ) @@ DPDK_16.04 > >> 3rd parameter 'p' (pointer) has base type 'struct rte_pci_ioport'= . > >> rte_eal_pci_ioport_read ( struct rte_pci_ioport* p, void* data, > >> size_t len, off_t offset ) @@ DPDK_16.04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'= . > >> rte_eal_pci_ioport_unmap ( struct rte_pci_ioport* p ) @@ DPDK_16.= 04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'= . > >> rte_eal_pci_ioport_write ( struct rte_pci_ioport* p, void const* = data, > >> size_t len, off_t offset ) @@ DPDK_16.04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'= . > >> > >> > >> My understanding of the comment for this structure is that it's > >> internal to EAL: > >=20 > > I'm not quite sure that is enough. Cc'ed Panu, the guru on ABI stuf= f, > > hopefully he could shed some light on it. > >=20 > >> /** > >> * A structure used to access io resources for a pci device. > >> * rte_pci_ioport is arch, os, driver specific, and should not be = used > >> outside > >> * of pci ioport api. > >> */ > >> struct rte_pci_ioport { > >> ... > >> } > >> > >> So I'd say it's ok to have it integrated for 16.07. > >=20 > > I'll let Thomas to decide it :) >=20 > Panu or Thomas, do you have any comment on this? The user of this struct is virtio. The ABI policy does not apply to drivers: =09- A means Application =09- external drivers must be rebuilt for each new release Thus no problem here.