All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"navasile@linux.microsoft.com" <navasile@linux.microsoft.com>
Cc: "Richardson, Bruce" <bruce.richardson@intel.com>,
	"david.marchand@redhat.com" <david.marchand@redhat.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"dmitry.kozliuk@gmail.com" <dmitry.kozliuk@gmail.com>,
	"dmitrym@microsoft.com" <dmitrym@microsoft.com>,
	"khot@microsoft.com" <khot@microsoft.com>,
	"navasile@microsoft.com" <navasile@microsoft.com>,
	"ocardona@microsoft.com" <ocardona@microsoft.com>,
	"Kadam, Pallavi" <pallavi.kadam@intel.com>,
	"roretzla@microsoft.com" <roretzla@microsoft.com>,
	 "talshn@nvidia.com" <talshn@nvidia.com>,
	"thomas@monjalon.net" <thomas@monjalon.net>
Subject: RE: [PATCH v18 8/8] eal: implement functions for mutex management
Date: Tue, 8 Feb 2022 02:21:49 +0000	[thread overview]
Message-ID: <DM6PR11MB44917D979EBAC6E4D5A302EB9A2D9@DM6PR11MB4491.namprd11.prod.outlook.com> (raw)
In-Reply-To: <DM6PR11MB4491556033D68A51F0A98ACC9A2C9@DM6PR11MB4491.namprd11.prod.outlook.com>



> > +
> > +/**
> > + * Thread mutex representation.
> > + */
> > +typedef struct rte_thread_mutex_tag {
> > +	void *mutex_id;  /**< mutex identifier */
> > +} rte_thread_mutex;
> 
> I wonder can't we have something like that instead:
> 
> for posix:
> typedef pthread_mutex_t rte_thread_mutex_t;
> for windows:
> typedef struct rte_thread_mutex {
> 	int initialized;
> 	CRITICAL_SECTION cs;
> }  rte_thread_mutex_t;
> 
> Then for posix:
> #define RTE_INIT_MUTEX(mx) do {\
> 	*(mx) = PTHREAD_MUTEX_INITIALIZER; \
> } while(0)
> 
> #define RTE_DESTROY_MUTEX(mx)	do {} while (0); /*empty */
> 
> For windows:
> #define RTE_INIT_MUTEX(mx) do {\
> 	If ((mx)->initialized == 0) {
> 		InitializeCriticalSection((mx)->cs);
> 		(mx)->initialized = 1;
> 	}
> } while (0)
> 
> #define RTE_DESTROY_MUTEX(mx)	do {
> 	if ((mx)->initialized != 0) { \
> 		DeleteCriticalSection((mx)->cs);
> 	}
> } while (0)
> 

Actually, please scrap that comment.
Obviously it wouldn't work for static variables, 
and doesn't make much sense.
Though few thoughts remain:
for posix we probably don't need an indirection and
rte_thread_mutex can be just typedef of pthread_mutex_t.
also for posix we don't need RTE_INIT constructor for each
static mutex initialization.
Something like:
#define RTE_STATIC_INITIALIZED_MUTEX(mx) \
	rte_thread_mutex_t mx = PTHREAD_MUTEX_INITIALIZER
should work, I think.
Konstantin




  reply	other threads:[~2022-02-08  2:22 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-07 16:02 [PATCH v18 8/8] eal: implement functions for mutex management Ananyev, Konstantin
2022-02-08  2:21 ` Ananyev, Konstantin [this message]
2022-02-09  2:47   ` Narcisa Ana Maria Vasile
2022-02-09 13:57     ` Ananyev, Konstantin
2022-02-20 21:56       ` Dmitry Kozlyuk
2022-02-23 17:08         ` Dmitry Kozlyuk
2022-02-24 17:29           ` Ananyev, Konstantin
2022-02-24 17:44             ` Stephen Hemminger
2022-03-08 21:36               ` Dmitry Kozlyuk
2022-03-08 21:33             ` Dmitry Kozlyuk
2022-02-09  3:08 ` Narcisa Ana Maria Vasile
2022-02-09 12:12   ` Ananyev, Konstantin
  -- strict thread matches above, loose matches on Subject: below --
2021-11-10  3:01 [dpdk-dev] [PATCH v17 00/13] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-11-11  1:33 ` [PATCH v18 0/8] " Narcisa Ana Maria Vasile
2021-11-11  1:33   ` [PATCH v18 8/8] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-12-13 20:27     ` Narcisa Ana Maria Vasile

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=DM6PR11MB44917D979EBAC6E4D5A302EB9A2D9@DM6PR11MB4491.namprd11.prod.outlook.com \
    --to=konstantin.ananyev@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=dmitrym@microsoft.com \
    --cc=khot@microsoft.com \
    --cc=navasile@linux.microsoft.com \
    --cc=navasile@microsoft.com \
    --cc=ocardona@microsoft.com \
    --cc=pallavi.kadam@intel.com \
    --cc=roretzla@microsoft.com \
    --cc=talshn@nvidia.com \
    --cc=thomas@monjalon.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.