From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EB090A0C4E; Mon, 25 Oct 2021 21:24:34 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D964B40E3C; Mon, 25 Oct 2021 21:24:34 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id DCE074003E for ; Mon, 25 Oct 2021 21:24:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635189873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6wCBb57Ofc3b6GuoEJti+pZGK7uwip198aSsooY4WTA=; b=dNLGPHIXvsUinUCoaJ222TmTqD3Od8QOHmn61HyTjqfpVGDRPIj4wV9nwGNGF0jZaaK9tO ikUMbA8wRJXmVQKvOvcn6OwZvKcVUbAPvK5/a7PIVQ2ET+Tn8QNX3gGCcjDWqEiHhzg8iG I6hq5dKRx1wmVca81MZjDHQzSaE1IYY= Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-200-agL4VQoAN9mp_LLXVDZ64g-1; Mon, 25 Oct 2021 15:24:30 -0400 X-MC-Unique: agL4VQoAN9mp_LLXVDZ64g-1 Received: by mail-lj1-f198.google.com with SMTP id k12-20020a2ea26c000000b00210f22d4769so3189572ljm.4 for ; Mon, 25 Oct 2021 12:24:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6wCBb57Ofc3b6GuoEJti+pZGK7uwip198aSsooY4WTA=; b=3Hkfx1g/3dbg6qm2+xe91VLNrNLWhqMadB1rcGI/Savnuu710lEea3M+PNzIs6uCwy Z8qJjez2iuqys4vep1JdKvuPK1wsWv7bfjsUuKuvgFrAheDNqOyjRQ2B1ykIOcKP5PDR q92NVH5fnB95OWjYNK3ZtQpcGn++YI9ZZZBYK8cB5za0/1LTjjkm00MTnLFIzanUzH6/ g4Yejsyx7vXZESma1Mfwdc1T5obbX4VRouQpDtA3oJ0+Jz7tUjvSpB4jCQWU2HQrcaFQ dow/su2tYGhfDgZjFKq2uQILsVwXQ9aLIBtvui3XztKGXy86/9l0RH0/WTezeHKd5HpP Wysg== X-Gm-Message-State: AOAM531lsY6FIEgeduHsPrezncXLTiC/BKuQnV9rIRCvNhUQ2eXl2CYs jCrKA1MpWiyf82DgxgMKr8ux9X8wGjb4izS6YIpVTlTmTuUYQJQtM1Jwmz8MR5YyCLskxHtzg3Q +lH5YBySV/r2TBBDLf9M= X-Received: by 2002:a2e:b6cc:: with SMTP id m12mr20184257ljo.297.1635189868410; Mon, 25 Oct 2021 12:24:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKXU+3VTpx7Y0FMdGDCA4wt9zPfYXvpMYd8n/HlmabHe4bAHkEN2y3cYKiMEfk7LMy5MEsrguzcXRRQnkgVF0= X-Received: by 2002:a2e:b6cc:: with SMTP id m12mr20184237ljo.297.1635189868189; Mon, 25 Oct 2021 12:24:28 -0700 (PDT) MIME-Version: 1.0 References: <20211022204934.132186-1-hkalra@marvell.com> <20211025142712.1273-1-david.marchand@redhat.com> In-Reply-To: <20211025142712.1273-1-david.marchand@redhat.com> From: David Marchand Date: Mon, 25 Oct 2021 21:24:16 +0200 Message-ID: To: Harman Kalra , dev Cc: Dmitry Kozlyuk , Raslan Darawsheh , Thomas Monjalon Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH v8 0/9] make rte_intr_handle internal X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Oct 25, 2021 at 4:27 PM David Marchand wrote: > > Moving struct rte_intr_handle as an internal structure to > avoid any ABI breakages in future. Since this structure defines > some static arrays and changing respective macros breaks the ABI. > Eg: > Currently RTE_MAX_RXTX_INTR_VEC_ID imposes a limit of maximum 512 > MSI-X interrupts that can be defined for a PCI device, while PCI > specification allows maximum 2048 MSI-X interrupts that can be used. > If some PCI device requires more than 512 vectors, either change the > RTE_MAX_RXTX_INTR_VEC_ID limit or dynamically allocate based on > PCI device MSI-X size on probe time. Either way its an ABI breakage. > > Change already included in 21.11 ABI improvement spreadsheet (item 42): > https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_s > preadsheets_d_1betlC000ua5SsSiJIcC54mCCCJnW6voH5Dqv9UxeyfE_edit-23gid- > 3D0&d=DwICaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=5ESHPj7V-7JdkxT_Z_SU6RrS37ys4U > XudBQ_rrS5LRo&m=7dl3OmXU7QHMmWYB6V1hYJtq1cUkjfhXUwze2Si_48c&s=lh6DEGhR > Bg1shODpAy3RQk-H-0uQx5icRfUBf9dtCp4&e= > > This series makes struct rte_intr_handle totally opaque to the outside > world by wrapping it inside a .c file and providing get set wrapper APIs > to read or manipulate its fields.. Any changes to be made to any of the > fields should be done via these get set APIs. > Introduced a new eal_common_interrupts.c where all these APIs are defined > and also hides struct rte_intr_handle definition. > > v1: > * Fixed freebsd compilation failure > * Fixed seg fault in case of memif > > v2: > * Merged the prototype and implementation patch to 1. > * Restricting allocation of single interrupt instance. > * Removed base APIs, as they were exposing internally > allocated memory information. > * Fixed some memory leak issues. > * Marked some library specific APIs as internal. > > v3: > * Removed flag from instance alloc API, rather auto detect > if memory should be allocated using glibc malloc APIs or > rte_malloc* > * Added APIs for get/set windows handle. > * Defined macros for repeated checks. > > v4: > * Rectified some typo in the APIs documentation. > * Better names for some internal variables. > > v5: > * Reverted back to passing flag to instance alloc API, as > with auto detect some multiprocess issues existing in the > library were causing tests failure. > * Rebased to top of tree. > > v6: > * renamed RTE_INTR_INSTANCE_F_UNSHARED as RTE_INTR_INSTANCE_F_PRIVATE, > * changed API and removed need for alloc_flag content exposure > (see rte_intr_instance_dup() in patch 1 and 2), > * exported all symbols for Windows, > * fixed leak in unit tests in case of alloc failure, > * split (previously) patch 4 into three patches > * (now) patch 4 only concerns alarm and (previously) patch 6 cleanup bits > are squashed in it, > * (now) patch 5 concerns other libraries updates, > * (now) patch 6 concerns drivers updates: > * instance allocation is moved to probing for auxiliary, > * there might be a bug for PCI drivers non requesting > RTE_PCI_DRV_NEED_MAPPING, but code is left as v5, > * split (previously) patch 5 into three patches > * (now) patch 7 only hides structure, but keep it in a EAL private > header, this makes it possible to keep info in tracepoints, > * (now) patch 8 deals with VFIO/UIO internal fds merge, > * (now) patch 9 extends event list, > > v7: > * fixed compilation on FreeBSD, > * removed unused interrupt handle in FreeBSD alarm code, > * fixed interrupt handle allocation for PCI drivers without > RTE_PCI_DRV_NEED_MAPPING, > > v8: > * lowered logs level to DEBUG in sanity checks, > * fixed corner case with vector list access, > > -- > David Marchand > > Harman Kalra (9): > interrupts: add allocator and accessors > interrupts: remove direct access to interrupt handle > test/interrupts: remove direct access to interrupt handle > alarm: remove direct access to interrupt handle > lib: remove direct access to interrupt handle > drivers: remove direct access to interrupt handle > interrupts: make interrupt handle structure opaque > interrupts: rename device specific file descriptor > interrupts: extend event list Series applied, thanks. -- David Marchand