From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v4 0/9] Improve cast alignment for strict aligned machines Date: Wed, 24 Jun 2015 12:04:04 +0200 Message-ID: <4738325.X6Ky7M8NBC@xps13> References: <1434998063-15739-1-git-send-email-cchemparathy@ezchip.com> <55897D08.7090209@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Cyril Chemparathy Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by dpdk.org (Postfix) with ESMTP id E3732C604 for ; Wed, 24 Jun 2015 12:05:12 +0200 (CEST) Received: by wicgi11 with SMTP id gi11so41398739wic.0 for ; Wed, 24 Jun 2015 03:05:12 -0700 (PDT) In-Reply-To: <55897D08.7090209@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" 2015-06-23 17:36, Olivier MATZ: > On 06/22/2015 08:34 PM, Cyril Chemparathy wrote: > > This series contains a few improvements that allow the DPDK code base > > to build properly on machines that enforce strict pointer cast > > alignment constraints. > > > > When dealing with packet data which could be arbitrarily aligned, we > > get the compiler to do the right thing by (a) making sure that header > > types are packed, and (b) introducing and using > > unaligned_uint(16|32|64)_t types when upcasting from byte pointers. > > > > In a few other instances, we know apriori that the pointer cast cannot > > possibly break alignment. This applies to the changes in mempool, > > hash, mbuf, and the ethdev stats code. Here, we simply silence the > > compiler by casting through (void *) using the RTE_PTR_(ADD|SUB) > > macros. > > > > Finally, we introduce a new rte_pktmbuf_mtod_offset() helper to return > > a type casted pointer to an offset within the packet data. This > > replaces the following commonly used pattern: > > (struct foo *)(rte_pktmbuf_mtod(m, char *) + offset) > > with: > > rte_pktmbuf_mtod_offset(m, struct foo *, offset) > > > > To ensure consistency, the above transform was applied throughout the > > code base using the coccinelle semantic patching tool. > > Series > Acked-by: Olivier Matz Applied, thanks