DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jan Viktorin <viktorin@rehivetech.com>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cc: Vlastimil Kosar <kosar@rehivetech.com>, dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v5 01/15] eal/arm: atomic operations for ARM
Date: Mon, 2 Nov 2015 14:10:28 +0100	[thread overview]
Message-ID: <20151102141028.7b58007e@pcviktorin.fit.vutbr.cz> (raw)
In-Reply-To: <20151102055304.GB17659@localhost.localdomain>

On Mon, 2 Nov 2015 11:23:05 +0530
Jerin Jacob <jerin.jacob@caviumnetworks.com> wrote:

--snip--
> > +#ifndef _RTE_ATOMIC_ARM_H_
> > +#define _RTE_ATOMIC_ARM_H_
> > +
> > +#ifdef __cplusplus
> > +extern "C" {
> > +#endif
> > +
> > +#include "generic/rte_atomic.h"
> > +
> > +/**
> > + * General memory barrier.
> > + *
> > + * Guarantees that the LOAD and STORE operations generated before the
> > + * barrier occur before the LOAD and STORE operations generated after.
> > + */
> > +#define	rte_mb()  __sync_synchronize()
> > +
> > +/**
> > + * Write memory barrier.
> > + *
> > + * Guarantees that the STORE operations generated before the barrier
> > + * occur before the STORE operations generated after.
> > + */
> > +#define	rte_wmb() do { asm volatile ("dmb st" : : : "memory"); } while (0)
> > +
> > +/**
> > + * Read memory barrier.
> > + *
> > + * Guarantees that the LOAD operations generated before the barrier
> > + * occur before the LOAD operations generated after.
> > + */
> > +#define	rte_rmb() __sync_synchronize()
> > +  
> 
> #define dmb(opt)        asm volatile("dmb " #opt : : : "memory")
> 
> static inline void rte_mb(void)
> {
>         dmb(ish);
> }
> 
> static inline void rte_wmb(void)
> {
>         dmb(ishst);
> }
> 
> static inline void rte_rmb(void)
> {
>         dmb(ishld);

I cannot see this option in the doc for ARMv7
(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0588b/CIHGHHIE.html).

> }
> 
> For armv8, it make sense to have above definition for rte_*mb().

If it is OK to restrict the barriers to the inner-domain then OK. Quite
frankly, I don't know.

> If doesn't make sense for armv7 then we need split this file rte_atomic_32/64.h
> 
> 


-- 
   Jan Viktorin                  E-mail: Viktorin@RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech
   Brno, Czech Republic

  parent reply	other threads:[~2015-11-02 13:12 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-29 17:29 [dpdk-dev] [PATCH 0/5] ARMv8 additions to ARMv7 support David Hunt
2015-10-29 17:29 ` [dpdk-dev] [PATCH 1/5] eal: split arm rte_memcpy.h into 32-bit and 64-bit versions David Hunt
2015-10-29 17:29 ` [dpdk-dev] [PATCH 2/5] eal: split arm rte_prefetch.h " David Hunt
2015-10-29 17:29 ` [dpdk-dev] [PATCH 3/5] eal: fix compilation for armv8 64-bit David Hunt
2015-10-29 17:38   ` Jan Viktorin
2015-10-29 17:29 ` [dpdk-dev] [PATCH 4/5] mk: add support for armv8 on top of armv7 David Hunt
2015-10-29 17:39   ` Jan Viktorin
2015-10-29 17:42   ` Jan Viktorin
2015-10-29 17:29 ` [dpdk-dev] [PATCH 5/5] test: add checks for cpu flags on armv8 David Hunt
2015-10-29 18:27 ` [dpdk-dev] [PATCH 0/5] ARMv8 additions to ARMv7 support Thomas Monjalon
2015-10-30  0:25   ` [dpdk-dev] [PATCH v5 00/15] Support ARMv7 architecture Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 01/15] eal/arm: atomic operations for ARM Jan Viktorin
2015-11-02  5:53       ` Jerin Jacob
2015-11-02 13:00         ` Jan Viktorin
2015-11-02 13:10         ` Jan Viktorin [this message]
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 02/15] eal/arm: byte order " Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 03/15] eal/arm: cpu cycle " Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 04/15] eal/arm: implement rdtsc by PMU or clock_gettime Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 05/15] eal/arm: prefetch operations for ARM Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 06/15] eal/arm: spinlock operations for ARM (without HTM) Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 07/15] eal/arm: vector memcpy for ARM Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 08/15] eal/arm: use vector memcpy only when NEON is enabled Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 09/15] eal/arm: cpu flag checks for ARM Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 10/15] eal/arm: detect arm architecture in cpu flags Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 11/15] eal/arm: rwlock support for ARM Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 12/15] eal/arm: add very incomplete rte_vect Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 13/15] gcc/arm: avoid alignment errors to break build Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 14/15] mk: Introduce ARMv7 architecture Jan Viktorin
2015-10-30  0:25     ` [dpdk-dev] [PATCH v5 15/15] maintainers: claim responsibility for ARMv7 Jan Viktorin
2015-10-30  0:17 ` [dpdk-dev] [PATCH 0/5] ARMv8 additions to ARMv7 support Jan Viktorin
2015-10-30  8:52   ` Hunt, David
2015-10-30 10:48     ` Jan Viktorin

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=20151102141028.7b58007e@pcviktorin.fit.vutbr.cz \
    --to=viktorin@rehivetech.com \
    --cc=dev@dpdk.org \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=kosar@rehivetech.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).