All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ananyev, Konstantin" <konstantin.ananyev-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: "Wodkowski,
	PawelX"
	<pawelx.wodkowski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: "dev-VfR2kkLFssw@public.gmane.org" <dev-VfR2kkLFssw@public.gmane.org>
Subject: Re: [PATCH v2] Change alarm cancel function to thread-safe:
Date: Mon, 29 Sep 2014 09:50:00 +0000	[thread overview]
Message-ID: <2601191342CEEE43887BDE71AB977258213874C5@IRSMSX104.ger.corp.intel.com> (raw)
In-Reply-To: <F6F2A6264E145F47A18AB6DF8E87425D12B3A553-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>



> -----Original Message-----
> From: Wodkowski, PawelX
> Sent: Monday, September 29, 2014 7:41 AM
> To: Neil Horman; Ananyev, Konstantin
> Cc: dev-VfR2kkLFssw@public.gmane.org
> Subject: RE: [dpdk-dev] [PATCH v2] Change alarm cancel function to thread-safe:
> 
> > Yes, this is my concern exactly.
> >
> > >  If that's so, then I suppose we can do: make alarm_cancel() to return a
> > negative value for the case #3 (-EINPROGRESS or something).
> > >  Something like:
> > > ...
> > > if (ap->executing == 0) {
> > >    LIST_REMOVE(ap,next);
> > >     rte_free(ap);
> > >     count++;
> > >     ap = ap_prev;
> > > } else if (pthread_equal(ap->executing_id, pthread_self()) == 0) {
> > >     executing++;
> > > } else {
> > >    ret = -EINPROGRESS;
> > > }
> > > ...
> > > return ((ret != 0) ? ret : count);
> > >
> > > So the return value  will be > 0 for #1, 0 for #2, <0 for #3.
> > > As I remember, you already suggested something similar in one of the previous
> > mails.
> > Yes, I rolled the API changes I suggested in with this model, because I wanted
> > to be able to do precise specification of a timer instance to cancel, but if
> > we're not ready to make that change, I think what you propose above would be
> > suffficient.  Theres some question as to weather we would cancel timers that
> > are
> > still pending on a return of -EINPROGRESS, but I think if we document it
> > accordingly, then it can be worked out just fine.
> >
> > Best
> > Neil
> >
> 
> Image how you will be damned by someone that not even notice you change
> and he Is managing some kind of resource based on returned number of
> set/canceled timers. If you suddenly start returning negative values how those
> application will behave? Silently changing returned value domain is evil in its
> pure form.

As I can see the impact is very limited.
Only code that does check for (rte_alarm_cancel(...) == 0/ != 0) inside alarm callback function might be affected. 
>From other side, indeed, there could exist situations, when the caller needs to know
was the alarm successfully cancelled or not. 
And if not by what reason. 

> 
> From my point of view, problem is virtual because this is user application task to
> know what it can and what it not. If you really want to inform user application
> about timer state you can introduce API call which will interrogate timers list
> and return appropriate value, but for god sake, do not introduce untraceable bugs.
> 
> Pawel

  parent reply	other threads:[~2014-09-29  9:50 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25 12:56 [PATCH v2] Change alarm cancel function to thread-safe: Michal Jastrzebski
     [not found] ` <1411649768-8084-1-git-send-email-michalx.k.jastrzebski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-25 13:11   ` Ananyev, Konstantin
2014-09-25 15:08   ` Neil Horman
     [not found]     ` <20140925150807.GD32725-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-25 16:03       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB977258213769DE-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-25 17:23           ` Neil Horman
     [not found]             ` <20140925172358.GG32725-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-25 23:24               ` Ananyev, Konstantin
     [not found]                 ` <2601191342CEEE43887BDE71AB97725821378B50-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26 11:46                   ` Neil Horman
     [not found]                     ` <20140926114630.GA3930-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-26 12:37                       ` Wodkowski, PawelX
     [not found]                         ` <F6F2A6264E145F47A18AB6DF8E87425D12B39EB5-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26 13:40                           ` Neil Horman
     [not found]                             ` <20140926134014.GB3930-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-26 14:01                               ` Wodkowski, PawelX
     [not found]                                 ` <F6F2A6264E145F47A18AB6DF8E87425D12B39F15-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26 15:01                                   ` Neil Horman
     [not found]                                     ` <20140926150156.GB5619-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-26 15:41                                       ` Ananyev, Konstantin
     [not found]                                         ` <2601191342CEEE43887BDE71AB9772582137D88E-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26 16:21                                           ` Neil Horman
     [not found]                                             ` <20140926162134.GE5619-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-26 18:07                                               ` Ananyev, Konstantin
     [not found]                                                 ` <2601191342CEEE43887BDE71AB9772582137D95F-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26 19:39                                                   ` Neil Horman
     [not found]                                                     ` <20140926193905.GH5619-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-28 16:12                                                       ` Ananyev, Konstantin
     [not found]                                                         ` <2601191342CEEE43887BDE71AB9772582138410B-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-28 20:47                                                           ` Neil Horman
     [not found]                                                             ` <20140928204754.GC4012-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-29  6:40                                                               ` Wodkowski, PawelX
     [not found]                                                                 ` <F6F2A6264E145F47A18AB6DF8E87425D12B3A553-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-29  9:50                                                                   ` Ananyev, Konstantin [this message]
     [not found]                                                                     ` <2601191342CEEE43887BDE71AB977258213874C5-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-29 10:11                                                                       ` Wodkowski, PawelX
     [not found]                                                                         ` <F6F2A6264E145F47A18AB6DF8E87425D12B3A80F-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-29 10:33                                                                           ` Bruce Richardson
2014-09-30 11:13                                                                             ` Wodkowski, PawelX
     [not found]                                                                               ` <F6F2A6264E145F47A18AB6DF8E87425D12B3B0AC-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-30 12:05                                                                                 ` Wodkowski, PawelX
     [not found]                                                                                   ` <F6F2A6264E145F47A18AB6DF8E87425D12B3B1A8-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-30 12:30                                                                                     ` Ananyev, Konstantin
     [not found]                                                                                       ` <2601191342CEEE43887BDE71AB9772582138DE32-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-30 12:54                                                                                         ` Neil Horman
2014-09-29 11:35                                                                           ` Neil Horman
2014-09-26 14:13                               ` Ananyev, Konstantin
     [not found]                                 ` <2601191342CEEE43887BDE71AB9772582137D7F1-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-29 10:37                                   ` Bruce Richardson
2014-09-26  6:33               ` Wodkowski, PawelX
     [not found]                 ` <F6F2A6264E145F47A18AB6DF8E87425D12B39AFE-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-26  9:49                   ` Wodkowski, PawelX
2014-09-26 13:43                   ` Neil Horman

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=2601191342CEEE43887BDE71AB977258213874C5@IRSMSX104.ger.corp.intel.com \
    --to=konstantin.ananyev-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
    --cc=pawelx.wodkowski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /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.