DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: "Jastrzebski, MichalX K" <michalx.k.jastrzebski@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"Landowski, MarekX M" <marekx.m.landowski@intel.com>
Subject: Re: [dpdk-dev] [PATCH 2/2] bond: add mode 4 support
Date: Mon, 22 Sep 2014 09:15:24 -0400
Message-ID: <20140922131524.GF25406@hmsreliant.think-freely.org> (raw)
In-Reply-To: <60ABE07DBB3A454EB7FAD707B4BB158213896977@IRSMSX109.ger.corp.intel.com>

On Mon, Sep 22, 2014 at 11:59:33AM +0000, Jastrzebski, MichalX K wrote:
> Hi Neil, 
> I agree with you that the most important is to release a code that works best without errors and this is what we all are working on. Pawel's answer "no time" doesn't sounds good here (he meant something else) - I ensure you that Pawel cares a lot to release a very good code. He proposes a solution that fixes this race for 1.8 release. Implementation of a new rte_api_call will take more time, because this is a new functionality for eal_timer library and with this it seems to be not much time left. Having said that, should we abandon hotfix and focus on the long-term solution?

Yes, I think the proper solution should be the one we shoot for here, though in
re-reading my response, perhaps I wasn't as clear as I could have been.  All I'm
really advocating here is that the while(...) { rte_pause() } loop that Pawels
fix puts in place is better wrapped in a function implemented in the rte_alarm
library, rather than privately to the bonding library, along with the
replacement of all the pointer assignments with an internal state variable.  I'm
not asserting that we need to audit the code to fix up all other call sites
using the rte_alarm api right now (though a quick cscope search reveals the only
locations are in the test apps).  I'm just saying lets fix it in such a way that
other users can take advantage of it now, and write the unit tests for it after
it ships.

In fact, looking at the alarm test infrastructure, alarm re-arming stress isn't
currently tested at all, so that could be a large undertaking after shipment.

> Best regards
> Michal
> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com] 
> Sent: Monday, September 22, 2014 12:25 PM
> To: Wodkowski, PawelX
> Cc: dev@dpdk.org; Jastrzebski, MichalX K; Doherty, Declan
> Subject: Re: [dpdk-dev] [PATCH 2/2] bond: add mode 4 support
> On Mon, Sep 22, 2014 at 06:26:21AM +0000, Wodkowski, PawelX wrote:
> > > I think that will work, but I believe you're making it more 
> > > complicated (and less reusable) than it needs to be.  What I think 
> > > you really need to do is create a new rte api call, 
> > > rte_eal_alarm_cancel_sync (something like the equivalent of 
> > > del_timer_sync in linux, that wraps up the
> > > while(rte_eal_alarm_cancel(...) == 0) {rte_pause} in its own 
> > > function (so other call sites can use it, as I don't think this is 
> > > an uncommon problem), Then just create a bonding-internal state flag 
> > > to signal the periodic callback that it shouldn't re-arm the timer.  
> > > That way all you have to do is set the flag, and call 
> > > rte_eal_alarm_cancel_sync, and you're done.  And other applications 
> > > will be able to handle this common type of operation as well
> > > 
> > > Neil
> > 
> > I agree with you that alarms should be upgraded but this need to 
> > discussed and tested. Now there is not time for that.
> > 
> Nak, thats a completely broken argument.  I've just demonstrated to you a race condition in the driver you are submitting.  Granted it stems from a design lmitation in the alarm subsystem, but its what we all have to work with, and we can work around it and make the driver safe.  To say there is "no time" to fix it, implies to me that you care more about just slamming your code in than making anything work properly.  What exactly is your rush that makes you think its more important for the code to be merged than fixing it to work correctly?
> Neil
> --------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
> Registered Number: 308263
> Business address: Dromore House, East Park, Shannon, Co. Clare
> This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.

      parent reply	other threads:[~2014-09-22 13:09 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-17 14:21 [dpdk-dev] [PATCH 0/2] " Pawel Wodkowski
2014-09-17 14:21 ` [dpdk-dev] [PATCH 1/2] bond: extract common code to separate functions Pawel Wodkowski
2014-09-17 14:51   ` Neil Horman
2014-09-17 14:21 ` [dpdk-dev] [PATCH 2/2] bond: add mode 4 support Pawel Wodkowski
2014-09-17 15:13   ` Neil Horman
2014-09-18  8:07     ` Wodkowski, PawelX
2014-09-18 16:02       ` Neil Horman
2014-09-19 12:47         ` Wodkowski, PawelX
2014-09-19 17:29           ` Neil Horman
2014-09-22  6:26             ` Wodkowski, PawelX
2014-09-22 10:24               ` Neil Horman
     [not found]                 ` <60ABE07DBB3A454EB7FAD707B4BB158213896977@IRSMSX109.ger.corp.intel.com>
2014-09-22 13:15                   ` Neil Horman [this message]

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140922131524.GF25406@hmsreliant.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=dev@dpdk.org \
    --cc=marekx.m.landowski@intel.com \
    --cc=michalx.k.jastrzebski@intel.com \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git